Raj*_*esh 3 c mingw
我在看序列点操作.在下面的代码中,i的值打印为1.但是我收到"在i上操作未定义"的警告消息.我当时认为虽然&运算符不是序列点,但是函数调用printf被认为是一个序列点,因此在%d期间我被完全评估.但为什么操作未定义?
int i = 0; if((i++) & printf("i = %d\n",i)) { // Something } else { // some code here }
Art*_*Art 5
函数调用是一个序列点,但在函数调用之前计算函数的参数.因此i++,i作为printf的一个论据是没有顺序的.
i++
i
归档时间:
8 年,7 月 前
查看次数:
61 次
最近记录: