数组、函数和指针

  一、数组和指针

数组名同时也是该数组首元素的地址。例如:flizny == &flizny[0] , flizny 和 &flizny[0]都代表首元素的内存地址,两者都是常量;

指针+1的结果就是对该指针增加一个存储单元,对于数组而言,地址会增加到下一元素的地址,而不是下一个字节。

可以用以下等式表示:

dates + 2 == &date[2] // 相同的地址

*(dates + 2) == dates[2] //相同的值

二、函数和指针

由于数组名就是数组首元素的地址,所以如果实际参数是一个数组名,那么形式参量必须是与之相匹配的指针。在(而且仅在)这种场合下,C对于int ar[] 和int *ar 作出同样的解释,即ar 是指向int的指针。由于函数声明可以省略名称,而定义则不行,一下4种函数原型都是等价的:

①、int sum ( int * char , int n );

②、int sum ( int * , int );

③、int sum ( int ar[] , int n );

④、int sum ( int [] , int );

posted @ 2016-07-16 16:44  发展才是硬道理  阅读(165)  评论(0编辑  收藏  举报