p 是一个指针,i 是一个变量;两者不能说是内容一样或是完全等价。当指针p 指向 i 的地址,就像是变量i 的地址有了个名字,就像是每个人都有不同的名字一样,但是身份证编号是唯一的(就像是变量i 的地址)。
比如:
#include<stdio.h>
int main()
{
int i = 10;
int * p = &i;
int * q = &i;
* p = 20;
printf("%d\n", i);
* q = 30;
printf("%d\n", i);
return 0;
}
此时输出20 30;因为指针p 和q 都指向了变量i 的地址,对p 和 q 的值修改,实际就是对i 的值修改。但是i 的地址并没有改变。举个例子,地址就像是一个箱子,i 则是箱子里面装的东西,指针p 和q 则可以对箱子里面的东西(i)进行修改,但并不会改变箱子本身。
//这只个人对指针的理解,希望对你有帮助。不好意思,晚了点,因为好久没有进百度空间了来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考