jingyixx
居然是如此简单之事

Ca(OH)2 发表于 2013-7-18 00:17

我去。。。。居然是如此简单之事。。。也就是说。。。数组名就已经是指针(地址)了?!!! ...

数组名不是指针,但是在大多数情况下转化为指向数组首元素的指针

典型的不转化情况:

int ary[5] = {1,2,3,4,5}; //初始化

sizeof(ary); //sizeof的操作数

&ary; //&的操作数

而在传递参数的时候是转化的,比如你写

foo(int a[5]);

会自动转化为 foo(int* a);

数组的长度会被自动丢弃(n维数组保留n-1的长度信息,一维数组就退化成一个指针了)

如果你想传递一个完整的数组信息,需要这么做

foo(int* ary, int length);