1.数组在作为参数传递到函数时,会退化为一个指针。也就是说,一旦进入函数内部,数组已经变为了一个指针。其实是在参数传递的时候进行了浅拷贝,编译器会声明一个指针指向该数组,在函数内部所有的操作都是对该临时指针的操作。
代码示例:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 100 void fun1(int *a); void main() { int a[N]; printf("%d ", sizeof(a)); fun1(a); } void fun1(int *a) { printf("%d ", sizeof(a)); }
结果:
400
4
------------------------------------------------------------------