1.形参和实参
函数定义中的参数是是形式参数,函数的调用者提供给函数的参数是实际参数。
2.值传递 地址传递对参数值的改变
当进行值传递时,主调函数把实参的值赋给形参,形参获得从主调函数传递过来的值运行函数。
在值传递过程中,被调函数参数值的更改不能导致实参值的更改。而如果是地址传递,由于传递过程中从实参传递过来的是地址,
所以被调函数中形参的更改会直接导致实参值的更改。
3.回调函数
回调函数是一个通过函数指针调用的函数。如果你吧函数指针(函数的入口地址)传递给另一个函数,当这个函数指针被用来调用
它所指的向的函数时,我们就说这个函数是回调函数。
4.使用可变参数函数的步骤
(1)在程序中将用到以下这些宏。
void va_start( va_list arg_ptr, prev_param );
type va_arg(va_list arg_ptr, type);
void va_end(va_list arg_ptr );
va在这里是variable-argument(可变参数)的意思,这些宏定义在stdarg.h中,所以用到可变参数的程序应该包含这个
头文件。
(2)函数里首先定义一个va_list型变量,这里是arg_ptr,这个变量是存储参数地址的指针,因为的到参数地址后,再结合
参数的类型,才能得到参数的值。
(3)然后用va_start宏初始化(2)中定义的变量arg_ptr,这个宏的第二个参数是可变参数列表的前一个参数,即最后一个
固定参数。
(4)然后依次用va_arg宏使arg_ptr返回可变参数的地址,的到这个地址之后,结合参数的类型,就可以得到参数的值。
(5)设定条件结束,这里的条件就是判断参数是否为-1.
5.void
返回值为空,不需要写return
6.字符组的输入输出
逐个字符输入输出。用格式符 “%c" 输入或输出一个字符
将整个字符串一次输入输出。用”%s“格式符,意思是对字符串的输入输出
7.宏定义预处理
#define 宏名(参数表) 宏体
列:#define S(a.b) a*b
8.二维数组
二维数组的定义: 类型说明符 数组名【常量表达式】【常量表达式】;
列:a[3][4] 3行4列
9.strcpy
用strcpy函数只能将一个字符串复制到另一个字符数组中去。
10.static
声明全局变量;
作用:改变全局变量的作用域,限定只能在当前文件使用;
改变函数的作用域,限定只能在本函数里调用;
修饰局部变量,改变变量的生命周期
,知道程序运行结束后释放。