数组与指针

 

数组与指针有密切的联系。数组名本身就是该数组的指针,反过来,也可以把指针看成一个数组,数组名和指针实质上都是地址,但是指针是变量,可以作运算。而数组名是常量,不能进行运算。

例如:

main()

{

chars[30], *p; /*定义字符型数组和指针变量*/

p=s;/*指针p指向数组s的第一个元素s[0]的地址*/

.

.

.

*(p+8);/*指针p指向数组s的第9个元素s[8]的地址*/

.

.

.

}

由上例可以看出数组和指针有如下关系:

(p+i)=&(s[i])

*(p+i)=s[i]  //其实可以把中括号看出是相加再取地址里面存的值

因此,利用上述表达式可以对数组和指针进行互换。两者的区别仅在于:数组s是程序自动为它分配了所需的存储空间;而指针p则是利用动态分想函数为它分配存储空间或赋给它一个已分配的空间地址。

posted on 2011-05-26 22:01  xuq  阅读(111)  评论(0)    收藏  举报

导航