C语言——printf函数的结合顺序

来源:互联网 发布:经传软件智能辅助线 编辑:程序博客网 时间:2024/06/08 02:14

下面用一个例子来看:

int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++)+=123;
printf(“ %d %d ”, *ptr, *(++ptr));

分析:

int *ptr = arr;

此时指针指向第一个元素,即6

*(ptr++)+=123;

此时指针ptr自加表示地址加一,指向第二个元素

printf(“ %d %d ”, *ptr, *(++ptr));

Printf中是向右的结合方向,所以先执行的是*(++ptr),所以此时指针又向后移了一位,*(++ptr)的值为8,再执行*ptr,值也为8

0 0