Thi*_*aka 2 c
#include <stdio.h> int main() { int x=100; x=x++; printf("x : %d\n",x); //prints 101 return 0; }
输出101的原因是什么?我认为输出应该是100.
Rod*_*ddy 5
由于序列点,这是未定义的行为.
在连续的"序列点"之间,对象的值只能通过表达式修改一次
前一个epxression的结束x=100;是一个序列点,而结束x=x++;是另一个.
x=100;
x=x++;
基本上,你的表达式没有中间的"序列点",但你要修改X的值两次.结果是未定义的行为:基本上,任何事情都可能发生:你可以获得100,101或42 ......
归档时间:
12 年,9 月 前
查看次数:
259 次
最近记录: