C语言基础教程(二)数据类型、变量和运算符(13)
www.nanhushi.com 佚名 不详
三、数组与指针 数组与指针有密切的联系。数组名本身就是该数组的指针, 反过来, 也可以把 指针看成一个数组, 数组名和指针实质上都是地址, 但是指针是变量, 可以作运算。 而数组名是常量, 不能进行运算。 例如: main() { char s[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则是利用动态分想函数为它分配 存储空间或赋给它一个已分配的空间地址。