51Testing软件测试论坛

标题: 输出 从右到左运算? [打印本页]

作者: AtimesL    时间: 2010-8-24 17:12
标题: 输出 从右到左运算?
int arr[]={6,7,8,9,10};
int *p=arr;
*(p++)+=123;
printf("%d,%d\n",*p,*(++p));

第三行是什么意思?对程序产生什么影响?
最后输出,有解释说从右向左运算,为什么?
作者: AtimesL    时间: 2010-8-25 15:17
标题: 解释
C中printf 计算参数时 是从右到左压栈的,所以输出时,先是*(++p),即指向arr[3]中的 8,所以*p也是8,
第三行 也可以写作 *p+=123;P++;
终于又弄明白一个




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2