标签:
一、数组和指针
数组名同时也是该数组首元素的地址。例如: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 );
标签:
原文地址:http://www.cnblogs.com/develop-me/p/5676808.html