我在看序列点操作.在下面的代码中,i的值打印为1.但是我收到"在i上操作未定义"的警告消息.我当时认为虽然&运算符不是序列点,但是函数调用printf被认为是一个序列点,因此在%d期间我被完全评估.但为什么操作未定义?
int i = 0;
if((i++) & printf("i = %d\n",i))
{
// Something
}
else
{
// some code here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |