问题描述:
#include void main(){ int b=3;int a; int arr[]={6,7,8,9,10}; int *ptr=arr; *(ptr++)+=123;
#include
using namespace std;
void main(){
int b=3;int a;
int arr[]={6,7,8,9,10};
int *ptr=arr;
*(ptr++)+=123;
printf("%d,%d\n",*(ptr),*(++ptr));
}
结果是8,8.
优先级关系应该是 ()大于*(指针)大于 ++ 大于+=
那*(ptr++)+=123;的执行顺序应该是 (ptr++)后再执行*,再执行+=.
可是结果是错的.
正确顺序是.先*ptr+=123,后再*ptr++.为什么啊
#include
using namespace std;
void main(){
int b=3;int a;
int arr[]={6,7,8,9,10};
int *ptr=arr;
*(ptr++)+=123;
printf("%d,%d\n",*(ptr),*(++ptr));
}
结果是8,8.
优先级关系应该是 ()大于*(指针)大于 ++ 大于+=
那*(ptr++)+=123;的执行顺序应该是 (ptr++)后再执行*,再执行+=.
可是结果是错的.
正确顺序是.先*ptr+=123,后再*ptr++.为什么啊
问题解答:
我来补答展开全文阅读