int a=2,*p=&a;*q=&a; printf("%d %d尀n",*p++,*(q++))

这里的*p++,*(q++) 区别
2024-11-18 09:27:09
推荐回答(3个)
回答(1):

这里的*p++是先取值在向后移动一个位置,而*(q++)表示的是先移动一个位置再取值
如:
int *p,n;
int a[3]={1,2,3};
p=a;
则n=*p++;时n=1;
而n=*(p++);时n=2;
这种问题自己可以再VC上运行一下试一下就可以了

回答(2):

区别 第一个是取当前地址的值自加1
第二个是地址向后偏移一位 再取值

回答(3):

没区别