按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
int *p; /*定义 p 为指向整型变量的指针*/
应当注意,因为数组为 int 型,所以指针变量也应为指向 int 型的指针变量。下面是对
指针变量赋值:
p=&a'0';
把 a'0'元素的地址赋给指针变量 p。也就是说,p 指向 a 数组的第 0 号元素。
C 语言规定,数组名代表数组的首地址,也就是第 0 号元素的地址。因此,下面两个语
句等价:
p=&a'0';
p=a;
在定义指针变量时可以赋给初值:
int *p=&a'0';
它等效于:
int *p;
p=&a'0';
当然定义时也可以写成:
int *p=a;
从图中我们可以看出有以下关系:
p;a;&a'0'均指向同一单元,它们是数组 a 的首地址,也是 0 号元素 a'0'的首地址。应
该说明的是 p 是变量,而 a;&a'0'都是常量。在编程时应予以注意。
数组指针变量说明的一般形式为:
类型说明符 *指针变量名;
其中类型说明符表示所指数组的类型。从一般形式可以看出指向数组的指针变量和指向普通
变量的指针变量的说明是相同的。
谭浩强 C 语言程序设计 2001 年 5 月 1 日
10。3。2 通过指针引用数组元素
C 语言规定:如果指针变量 p 已指向数组中的一个元素,则 p+1 指向同一数组中的下一
个元素。
引入指针变量后,就可以用两种方法来访问数组元素了。
如果 p 的初值为&a'0';则:
1) p+i 和 a+i 就是 a'i'的地址,或者说它们指向 a 数组的第 i 个元素。
2) *(p+i)或*(a+i)就是 p+i 或 a+i 所指向的数组元素,即 a'i'。例如,*(p+5)或*(a+5)
就是 a'5'。
3) 指向数组的指针变量也可以带下标,如 p'i'与*(p+i)等价。
根据以上叙述,引用一个数组元素可以用:
1) 下标法,即用 a'i'形式访问数组元素。在前面介绍数组时都是采用这种方法。
2) 指针法,即采用*(a+i)或*(p+i)形式,用间接访问的方法来访问数组元素,其中 a
是数组名,p 是指向数组的指针变量,其处值 p=a。
【例 10。9】输出数组中的全部元素。(下标法)
main(){
int a'10';i;
for(i=0;i