int arr[]={6,7,8,9,10};
int *ptr=arr;
*(ptr++) += 123;
printf("%d,%d",*ptr,*(++ptr));
你觉得打印结果应该是多少呢?
如果是7,7 恭喜你答错啦,应该是8,8
因为
1.printf自右向左运行,打印的值应是一样的
2.到打印那一句时ptr指针已经后移两个一个整型变量的位置。
打印一下所有数据就清楚了:
std::cout << *(ptr-1) << std::endl;
std::cout << *(ptr) << std::endl;
std::cout << *(ptr+1) << std::endl;
std::cout << *(ptr+2) << std::endl;
std::cout << *(ptr+3) << std::endl;
129
7
8
9
10
阅读(608) | 评论(0) | 转发(0) |