第8章 地址和指针 8.4 对指针变量的操作
讨论本章
- 知识点:
- 8.4.1 通过指针来引用一个存储单元
- 8.4.2 移动指针
- 8.4.3 指针比较
C语言提供了一个称作“间接访问运算符”(也称间址运算符)的单目运算符:“*”。当指针对指针变量的操作变量中存放了一个确切的地址值时,就可以用“间接访问运算符”通过指针来引用该地址的存储单元。
所谓移动指针就是对指针变量加上或减去一个整数,或通过赋值运算,使指针变量指向相邻的存储单元。因此,只有当指针指向一串连续的存储单元时,指针的移动才有意义。
当指针指向一串连续的存储单元时,可以对指针变量进行加上或减去一个整数的运算,也可以对指向同一串连续存储单元的两个指针进行相减的运算。除此之外,不可以对指针进行任何其他的算术运算。
在关系表达式中可以对两个指针进行比较。例如,P和q是两个指针变量,以下语句是完全正确的:
if(P<q)printf(”P points to lower memory than q.\n”);if(P==′\0′)printf(”P points to Null.\n”);
通常两个或多个指针指向同一目标(如一串连续的存储单元)时比较才有意义。