C语言.函数与变量类型

函数

变量作为函数的参数

注:1.函数定义-函数声明-函数调用。
    2. 在C语言中实参向形参传递是单向传递。实参和形参是在不同的储存单元。
    3.函数的返回值发生冲突时按着函数的类型返回。

函数的定义
    int function(int a,int b);

函数的声明(可以不写参数只声明类型)
    int function(int,int);

数组作为函数参数


数组元素作为函数实参(与变量相同)

数组名作为函数实参(此时形参应为数组名、指针)数组名作为函数参数时,传递数组的首元素地址。
    int function(int array[10])
1. 数组名作为函数参数时,在主函数和被调函数中都定义数组
2.实参数组与形参数组类型应一致(不然会出错)
3.形参数组本身没有大小无用,只是将实参首地址传递给形参,因此在定义时可以不指定形参数组的大小,后面只跟[]就可以。
4.数组名作为函数实参时不是数组元素的传递,而是数组首地址的传递,二者公用一段内存,此时改变形参的值实参就会随之发生变化。

多维数组作为函数实参


不可省略第二维以及更高维。
    合法:int a[3][2]
          int a[][3]
    不合法:int a[][]

局部变量和全局变量

局部变量
全局变量
尽量少用全局变量
如果在一个函数中有效的全局变量与局部变量同名,则全局变量无效

变量的存储类别

auto变量(自动变量)(动态存储类别)

数据存储在动态存储区中
用则分配地址,不用释放。

用static声明局部变量(静态局部变量)(静态存储类别)

 一次声明后再次不是放存储空间,再次调用时仍保留上一次的值。此时就需要将变量指定为静态局部变量,用static命名。
 当静态局部变量在不赋初值切被调用时,会自动赋初值值0(数值型变量)和空字符(字符型变量)。

rdgister变量

只有局部自动变量和形参可以作为register(寄存器)变量,其他类似全局变量,局部静态变量(static)不行能定义为寄存器变量。

extern外部变量

声明变量是已经定义的外部变量

用static声明外部变量(静态外部变量)

猜你喜欢

转载自blog.csdn.net/qq_43448742/article/details/89669426