序列点用简单的单词表示

时间:2015-07-15 01:33:51

标签: c++ c programming-languages

  

在称为序列点的执行序列中的某些特定点处,先前评估的所有副作用应完整,并且不会发生后续评估的副作用。

任何人都可以用初学者的话解释这些行和相关术语吗?

2 个答案:

答案 0 :(得分:1)

n++等表达式有副作用,即它们不仅会产生结果,还会修改变量。

*运算符引入序列点。因此,在表达式n++ * n--中未指定,n++(递增n)的副作用是否已在评估n--时发生。根据这一点,n++ * n--会产生不同的结果。

;引入了一个序列点。如果n == 5,则在n++; n--;之后,n == 5再次成立。

答案 1 :(得分:0)

请考虑以下声明:

x = y++ * --z;

有三种评估:y++--zy++的结果乘以--z的结果。有三种副作用:向y添加1,从z减去1,并将y++ * --z的结果分配给x

序列点是程序执行中的所有上述操作完成的点,在这种情况下是在语句的末尾。