以什么顺序评估`if`条件中的表达式?

时间:2018-03-11 00:02:14

标签: c++ if-statement evaluation

以下是安全代码吗?

bargraph

或者我应该做什么

int main()
{
  std::vector<int> v = buildVector();
  if (v.size() > 2 && v[1]==2)
  {
     doThis();  
  } else
  {
     doThat();  
  }
}

我担心它会尝试在int main() { std::vector<int> v = buildVector(); if (v.size() > 2) { if (v[1] == 2) { doThis(); } else { doThat(); } } else { doThat(); } } 之前评估v[1] == 2并导致分段错误或其他问题。如何使用逻辑OR进行类似的情况?

C ++是否会始终按照提供的顺序评估v.size() > 2条件中的表达式,并在有足够信息知道它是if还是true时停止?

0 个答案:

没有答案