diff --git a/Chapter2 C与C++/2.2 函数.md b/Chapter2 C与C++/2.2 函数.md index 8354a6d..0af5a8d 100644 --- a/Chapter2 C与C++/2.2 函数.md +++ b/Chapter2 C与C++/2.2 函数.md @@ -1,17 +1,51 @@ -所谓函数,是指按照某种规律,将输入转变成输出的系统。 -我们可以用c语言描述这样的系统。 +所谓函数,是指按照某种规律,将输入转变成输出的系统。 +我们可以用c语言描述这样的系统。 ```cpp -int fun(int a, int b) +int fun0(int a, int b) {   return (a+b)*(a-b); } ``` -以上是一个函数的定义,可以看出,定义函数需采用以下语法结构: +以上是一个函数的定义,可以看出,定义函数需采用以下语法结构:   返回值类型 函数名(参数类型 参数1, ... ,参数类型 参数n)   { } -函数的参数通过return语句返回给调用者 \ No newline at end of file +函数的命名规则与变量的命名规则一致,只能包括下划线,英文字符和0~9数字,并且数字不能作为首字母出现。 +函数的参数是一组仅在函数内部可见的变量,这些变量的值,由调用者传入: + +```cpp +int a=5; +fun0(a, 3)   // 计算(5+3)*(5-3). +``` + +在定义函数的时候写的参数名称称作形式参数,简称形参。而这里在调用时传入的a和3称作实际参数,简称实参。 +函数的参数通过return语句返回给调用者: + +```cpp +int c=fun0(5, 3) // c=16. +``` + +函数可以没有输入,此时函数的参数列表应该为void,或者不写。 + +```cpp +int fun1(void) +{ +   return 9;   // fun1不依赖任何参数,固定返回整数9. +} +``` + +函数也可能没有返回值,此时返回类型为void: + +```cpp +void fun2(int a) +{ +   printf("A=%d.\n", a);   // 函数不返回任何内容,仅打印参数a的值. +} + +int b; +b=fun2(0x10);   // 这种写法是错的,因为fun2没有返回值,所以无法为变量b赋值. +``` \ No newline at end of file