*p什么时候指内存编号,什么时候值变量的值啊?
c语言吧
全部回复
仅看楼主
level 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)++);getch();}这里的",*p++,*(q++)为什么指的是内存编号?
2006年08月26日 11点08分 1
level 0
这种结果是未定义的因为&a+1里的值未知
2006年08月26日 11点08分 2
level 1
*p++这个是先算*还是先算++啊?
2006年08月26日 11点08分 3
level 1
结果是 2 2 3 2为什么第三个数字是3...那里不是重新把a的地址给了p 了么 杂子还是3~?
2006年08月26日 13点08分 4
level 1
那是因为TC执行的时候是从右边开始的!当执行printf("%d %d\n",*p,(*q)++); 时,TC先算(*P)++的值,即先取出A的值输出,再使它的值自加,输出 *p 时,a的值已经变成了3,于是便会有以上结果!
2006年08月26日 13点08分 5
1