/*副作用和顺序点可参考c primer plus 第五版 p101、103底、《浅谈C/C++中的顺序点和副作用》、http://bbs.csdn.net/topics/370153775 */
#include <stdio.h>
int main()
{
int i=3;
int result=(++i)+(++i)+(++i);
printf("%d\n",result); //结果未定义,一些编译器结果为16,一些编译器结果为18,vs2008下为18,vc++6.0下为16
i=3;
result=(i++)+(++i)+(++i);//vs2008下为15,vc++6.0下为13
printf("%d\n",result);
i=3;
result=(++i,i++,i+10);//结果确定为15,因为逗号表达式规定从左到右求值,最后一个表达式的值作为整个逗号表达式的值。
printf("%d\n",result);
return 0;
}
(++i)+(++i)+(++i)之类 顺序点和副作用
最新推荐文章于 2024-03-13 11:49:24 发布