问一个c语言的问题,求指点!(问题见正文)
时间:10-02
整理:3721RD
点击:
int arr[]={6,7,8,9,10};int *p = arr;
*(p++) += 123;
printf("%d %d",*p,*(p++));
//printf("%d %d",*p,*(++p))这个输出是8 8还可以理解,上面那个输出8 7怎么解释?
*(p++) += 123;
printf("%d %d",*p,*(p++));
//printf("%d %d",*p,*(++p))这个输出是8 8还可以理解,上面那个输出8 7怎么解释?
原来如此知道了
这是++p和p++的问题,p++执行完后不能立即生效
printf好像是从右面计算,然后从左面开始输出,才造成这种结果
你的代码貌似不对呀!
你的问题是C编译器的编译规则,你看手册不就行了
