今天学习了C语言的数组函数
1.数组元素作函数实参
由于实参可以是表达式,而数组元素可以是表达式的组成部分,因此数组元素当然可以作为函数的
实参,与用变量作实参一样,是单向传递,即“值传送”方式。
2.数组名作函数参数
传递数组名本质上是指针,只传递了首元素地址,无法判断元素的个数,因此传参时还要传递第二个参数len;
二维数组在传参时要穿行数(rows),函数定义时,列数(cols)要是一个固定值;
数组函数的传参是指针传参,会改变实参,因此可以在被调函数中修改主调函数的参数;
3.参数与const
参数前有const表明该参数既可以是常量也可以是数组名;
没有conts表明该参数只能是数组名,不能是常量;
4.sizeof
int a[100];
在被调函数中,sizeof(a)= 8,这是因为sizeof打出的是数组a的首元素的地址长度;
而在主调函数中,sizeof(a)= 100;这是因为sizeof打出的是数据类型的长度;
这里是由于C语言的定义不够清晰导致这种情况;