语句int i=3;k=(i++)+ (i++)+ (++i);则执行过后k,i的值是?

来源:百度知道 编辑:UC知道 时间:2024/06/14 11:42:29
如题 请详细说明下 为什么
可是这是一个卷子上的题 我要答案的
是C语言的题

这个值是不确定的,具体依赖于编译器

C++标准明确规定,求值顺序未定义
告戒我们,不要在同一条语句中多次修改同一个变量的值
因为这是未定义的,也就是说,在不同的编译器上,它的计算顺序
可能不同,因此值也会不同....

研究这种未定义的问题没意义...

PS:现在一些老师就喜欢出这种BT的题目
你去问你们老师这个答案,他要是给了你答案而没说其他的
你就问他,你确定吗.谁告诉你的这个求值顺序了

一般不提倡这样写..而且不同的编译器可能结果不一样...建议楼主不要深究这类问题.以后到公司写程序,谁要是写程序是这种风格的...老板第一个开掉他..