C++函数学习笔记三

函数是一个可以从程序其他地方调用执行的语句块。
"函数格式:type name (argument1, argument2, ……) statement
type 是函数返回的数据的类型
name 是函数被调用时使用的名
argument 是函数调用需要传入的参量(可以声明任意多个参量),参量仅在函数范围内有效
statement 是函数的内容。例一:
#include <iostream.h>
int addition (int a, int b) {
  int r;
  r = a +b;
  return (r);
}
int main () {
  int z;
  z = addition (5, 3);
  cout << ""The result is "" << z;
  return 0;
}
输出结果:The result is 8"
"没有返回值类型的函数,使用void;例二:
#include <iostream.h>
using namespace std;
void printmessage () {
  cout << ""I'm a function!"";
}
int main () {
  printmessage ();
  return;
}
输出结果:I'm a function!"
参数按数值传递和按地址传递;
上面学到的函数都是按值传递
下面是按地址传递的例子:
#include <iostream.h>
"void duplicate (int& a, int& b, int& c) {
  a*=2;
  b*=2;
  c*=2;
}"
int main () {
"int x = 1, y = 3, z = 7;
duplicate (x, y, z);
cout << ""x="" << x << "", y= "" << y << "", z="" << z;
return 0;
}"
输出结果:x=2, y=6, z=14
参数的默认值,例子如下:
#include <iostream.h>
"int divide (int  , int b = 2) {
int r ;
r = a/b;
return (r);
}"
int main () {
cout << divide (12);
cout << endl;
cout << divide (20, 4);
return 0;
}
输出结果:6换行 5
函数重载:函数名相同,参数不同。例子:
#include <iostream.h>
int divide (int a, int b) {
return (a/b);
}
float divide (float a, float b) {
return (a/b);
}
int main () {
int x = 5. y = 2;
float n = 5.0, m = 2.0;
cout << divide (x, y);
cout << "\n";
cout << divide (n, m);
return 0;
}
输出结果:2 换行 2.5
inline 函数:inline 指令可以被放在函数声明之前,要求该函数必须在被调用的地方以代码形式被编译。这相当于一个宏定义(macro)。它的好处只对短小的函数有效,这种情况下因为避免了调用函数的一些常规操作的时间(overhead),如参数堆栈操作的时间,所以编译结果的运行代码会更快一些。
声明形式:inline type name (arguments … ) { instructions … }
递归:指函数被自己调用的特点,对排序和阶乘运算很有用。例子如下:
#include <iostream.h>
long factorial (long a) {
if (a > 1) return (a *factorial (a - 1));
else return (1);
}
int main () {
long l;
cout << "Type a number: ";
cin >> l;
cout << "!" << "=" << factorial (l);
return 0;
}
"输出结果:Type a number: 9
!9 = 362880 "
函数的声明,为了让主函数能调用后面写的函数,我们需要先声明函数,否则会有编译错误。
声明形式:type name (argument_type1, argument_type2, … );
例如:
#include <iostream.h>
void odd (int a);
void even (int a);
int main () {
int i;
do {
cout << "Type a number: (0 to exit)";
cin >> i;
odd (i);
} while (i != 0);
return 0;
}
void odd (int a) {
if ((a%2) != 0) cout << Number is odd.\n";
else even (a);
}
void even (int a) {
if ((a%2) != 0) cout << Number is even.\n";
else odd (a);
}
"输出结果:Type a number (0 to exit): 9
Number is odd.
Type a number (0 to exit): 6
Number is even.
Type a number (0 to exit): 1030
Number is even.
Type a number (0 to exit): 0
Number is even.

你可能感兴趣的:(type,include,iostream)