- 6
- 0
- 约2.17千字
- 约 3页
- 2023-04-27 发布于上海
- 举报
指针与数组
在 C 语言中,指针和数组之间的关系十分密切,因此,在接下来的部分中,我们将同时讨论指针与数组。通过数组下标所能完成的任何操作都可以通过指针来实现。一般来说,用指针编写的程序比用数组下标编写的程序执行速度快,但另一方面,用指针实现的程序理解起来稍微困难一些。
声明
int a[10];
定义了一个长度为10的数组a。换句话说,它定义了一个由10个对象组成的集合,这10 个对象存储在相邻的内存区域中,名字分别为a[0]、a[1]、?、a[9](参见图5-3)。
图5-3
a[i]表示该数组的第i个元素。如果pa的声明为int *pa;
则说明它是一个指向整型对象的指针,那么,赋值语句
pa = a[0];
则可以将指针pa指向数组a的第0 个元素,也就是说,pa的值为数组元素a[0]的地址(参见图5-4)。
图5-4
这样,赋值语句
x = *pa;
将把数组元素a[0]中的内容复制到变量x中。
如果pa 指向数组中的某个特定元素,那么,根据指针运算的定义,pa+1 将指向下一个元素,pa+i 将指向pa 所指向数组元素之后的第i 个元素,而pa-i 将指向pa 所指向数组
元素之前的第i 个元素。因此,如果指针pa 指向a[0],那么*(pa+1)引用的是数组元素a[1]的内容,pa+i是数组元素a[i]的地址,*(pa+i)引用的是数组元素a[i]的内容(参见
原创力文档

文档评论(0)