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