C++数组与指针

一、指向数组元素的指针

一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。所谓数组元素的指针就是数组元素的地址。
   int a[10];          //定义一个整型数组a,它有10个元素
   int *p;             //定义一个基类型为整型的指针变量p
   p=&a[0];            //将元素a[0]的地址赋给指针变量p,使p指向a[0]
在C++中,数组名代表数组中第一个元素(即序号为0的元素)的地址。因此,下面两个语句等价:
   p=&a[0];
   p=a;
在定义指针变量时可以给它赋初值:
   int *p=&a[0];            //p的初值为a[0]的地址
也可以写成
   int *p=a;                //作用与前一行相同
可以通过指针引用数组元素。假设p已定义为一个基类型为整型的指针变量,并已将一个整型数组元素的地址赋给了它,使它指向某一个数组元素。如果有以下赋值语句:
   *p=1;                //对p当前所指向的数组元素赋予数值1
如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。

如果p的初值为&a[0],则:

转自:http://see.xidian.edu.cn/cpp/biancheng/view/162.html

posted @ 2013-02-08 18:16  stma  阅读(196)  评论(0)    收藏  举报