the*_*ick 0 c c++ operator-precedence
以下代码段
int i=0;
printf("%d %d",i++,i++);
Run Code Online (Sandbox Code Playgroud)
给出输出
1 0
我可以理解,但以下
int i=0;
printf("%d %d",++i,++i);
Run Code Online (Sandbox Code Playgroud)
给出输出
2 2
有人能解释我第二种行为吗?
Naw*_*waz 11
两个printfs都调用undefined-behavior.请参阅:未定义的行为和序列点
引用此链接:
简而言之,未定义的行为意味着任何事情都可能发生在从你的鼻子飞到你女朋友怀孕的守护进程中.
对于新手:不要尝试在函数调用参数列表中修改变量的值两次或更多次.有关详细信息,请单击此处以了解其含义.:-)