指针间接访问
指针变量存储的数值是一个地址,针对指针变量的取值并非取出它所存储的地址,而是间接取得该地址中存储的值。C语言支持以取值运算符“”取得指针变量所指向内存单元中存储的数据,也叫做解引用。其语法格式如下:
*指针表达式
上述格式中,“”表示取值运算符,“指针表达式”一般为指针变量名。通过间接寻址访问,可以获取指针指向地址中的数据。下面通过一个案例演示取值运算符的使用,如例1所示。
例1 getVal.c
1 #include <stdio.h>
2 int main()
3 {
4 int a = 1;
5 int* p = &a;
6 int b = *p; //取出指针变量p指向的内存中的数据,并赋值给变量b
7 printf("指针变量p指向内存地址的数据是:%d\n",b);
8 return 0;
9 }
例1运行结果如图1所示。
图1 例1运行结果
在例1中,指针变量p中存储的是变量a的地址,通过取值运算符“”取出该地址中的数据(即a的值),并赋值给变量b。输出变量b,由图5-6可知,其值为1,表明通过取值运算符“”取值成功。