学习的时候看到这么一道题目
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++)+=123;
printf(“ %d %d ”, *ptr, *(++ptr));
我最开始以为答案是7,8
但是给出的答案是8,8
我百思不得其解,因为我还不清楚printf的参数计算顺序,我之前一直以为是从左向右。
然后去网上查找,大多数解释是:printf参数运算顺序,与其编译环境有关,大多数都是从右向左
下面是在DEVC++测试案例,就是从右往左的: