我正在为强调的线寻找一些澄清。
(C99 6.5.16/3) 赋值运算符将值存储在左操作数指定的对象中。赋值表达式在赋值后具有左操作数的值,但不是左值。赋值表达式的类型是左操作数的类型,除非左操作数具有限定类型,在这种情况下,它是左操作数类型的非限定版本。更新左操作数的存储值的副作用应发生在前一个和下一个序列点之间。
考虑以下示例:
int x = 42;
int y = 0;
int main()
{
// side effect of modifying 'x'
x = y;
}
前一个和下一个序列点是什么?在 main 的开头是否有序列点?