每日一C之数组作为参数
每天拾一个C语言贝壳,厚积薄发,积跬步以致千里。
今日贝壳:C语言中,作为参数的数组不能直接传递,将转化为指针传递
1.参数指针化:
如果使用数组名作为函数参数,该数组名会被转化为指向该数组首元素的指针。如:
intfoo(int Array[ ]){ ... }
该函数声明会被转化成下面的函数声明:
intfoo(int * Array){ ... }
因此,将数组作为函数参数毫无意义,都会做指针化处理。数组作为参数的声明时,上面两种声明方式是等价的,但在其他情况下,不会发生这种自动转化。
2.测试:
#include
void foo(int Array[])
{
printf("Sizeof Array :%d \n",sizeof(Array)); //输出作为参数的数组大小
}
int main(){
int Array[10];
printf("Sizeof Array :%d \n",sizeof(Array)); //输出原数组大小
foo(Array);
return 0;
}
Have a nice day !