打印本文 打印本文  关闭窗口 关闭窗口  
C语言基础教程(二)数据类型、变量和运算符(13)
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 13:58:27  文章录入:杜斌  责任编辑:杜斌

三、数组与指针 
    数组与指针有密切的联系。数组名本身就是该数组的指针, 反过来, 也可以把 
指针看成一个数组, 数组名和指针实质上都是地址, 但是指针是变量, 可以作运算。 
而数组名是常量, 不能进行运算。 
    例如: 
     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则是利用动态分想函数为它分配 
存储空间或赋给它一个已分配的空间地址。
打印本文 打印本文  关闭窗口 关闭窗口