表达式的副作用是修改内存并访问 volatile 限定对象。示例表达式的副作用是更新 i 和 p 以及 f() 和 g() 函数中包含的任何副作用。
表达式的分组是值与其他值和运算符相结合的一种方式。示例表达式的分组主要是加法的执行顺序。
表达式的求值包括生成结果值所必需的所有运算。要对表达式求值,所有指定的副作用必须在上下两个序列点之间发生,并且使用特定的分组执行指定的操作。对于示例表达式,更新 i 和 p 必须发生在前一语句之后并且通过该表达式语句的 ; 执行。函数调用可以在前一语句之后按任一顺序、任何时间执行,但必须在使用其返回值之前。特别地,在使用操作的值之前,导致内存更新的运算符不需要分配新值。