Kar*_*tel 22
按要求:
在一般情况下,事情需要一个理由,是一个序列点.他们并不需要一个理由不成为一个序列点; 这是默认值.
例如,&&
由于短路行为,必须是序列点:如果左侧为假,则不得评估右侧.(这不仅仅是关于优化;右侧可能有副作用,和/或取决于左侧是真的,如同ptr && ptr->data
.)因此,左侧必须首先评估,在右侧之前 -手边,以便看看是否应该评估右侧.
这个原因之所以不存在是=
因为,尽管双方都有"评价"(虽然对双方都有不同的限制:左手边必须是左值 - l
不代表" left",btw;它代表"location",就像在内存中的位置 - 我们不能分配给临时或文字),首先评估哪一方并不重要 - 只要双方在之前进行评估实际的任务.