- UID
- 62434
注册时间2009-5-15
阅读权限8
最后登录1970-1-1
初入江湖
该用户从未签到
|
第一段
main()
{
int a=2,*p=&a,*q=&a;
printf("%d %d\n",*p++,*(q++));
p=&a; q=&a;
printf("%d %d\n",*p,(*q)++);
}
第二段
main()
{
int a=2,*p,*q;
q=p=&a;
printf("%d %d\n",*p++,*(q++));
p=&a; q=&a;
printf("%d %d\n",*p,(*q)++);
}
以上二段红色代码有区别,程序运行结果一样,
但谭教授的书上说不能写成:*p=&a,因为a的地址是赋给指针变量p,而不是赋给*p(即变量a)。
*p不是应该=a吗?怎么变成了*p=&a(a的地址也是正确的了?)我实在是搞糊涂了,那位能解下疑啊。。。谢谢了。。。
p是指针变量,指向a的地址,所以p=&a;
*p是指针变量p所指向的地址中的数值,所以*p=a;
但是为什么*p=&a,也不是错的?
[ 本帖最后由 widelove 于 2009-7-17 00:03 编辑 ] |
|