一、问题
指针变量在初始化以后就可以使⽤和参与操作了,那么就要⽤到对指针变量最常⽤的两个操作符——> * 和 & 。
二、解答
这⾥⼜要提到始终贯穿着指针的⼀个符号“ * ”,但是这⾥的“ * ”是作为指针运算符使⽤的,叫做取内容运算符。
另⼀个要介绍的符号在前⾯的输⼊输出函数的 scanf( ) 函数中就有使⽤,那就是&。 上⾯说明了两种指针变量运算的符号,下⾯来看⼀下两者之间的关系,如图所示。
通过图中所示就不难理解,使⽤&符号对变量i的地址进⾏读取,读取后存⼊指针变量 p 中。在指针变量 p 中保存的是变量 i 的地址,那么我们就可以使⽤ *p 对变量i中的数据进⾏读取。
下⾯是⼀个演⽰取地址运算符和取内容运算符的程序,代码如下:
#include<stdio.h>
int main()
{
int i;
int *p;
p = &i;
i = 10;
printf("i=%d\t*p=%d\n",i,*p);
*p = 5;
printf("i=%d\t*p=%d\n",i,*p);
return 0;
}
运⾏结果如下所示
i=10 *p=10
i=5 *p=5
三、总结
上⾯的演示代码可以这么理解:将 *p 看成是变量i的⼀个别名,也就是 i 和 *p 这两个名称都可以访问同⼀内存单元。