赋值运算符和条件语句

时间:2012-11-12 22:50:33

标签: c++ dynamic if-statement

我很难理解以下代码buffer[i] = arr ? arr[i] : 0;。 这是否意味着如果arr包含任何内容,则其等于buffer[i],如果不包含0则等于#include <iostream> using namespace std; int main () { int arr[5]={11,22,33,44,55}; int * buffer; buffer = new int [5]; for(int i=0;i<5;i++){ buffer[i] = arr ? arr[i] : 0;//true/falls cout<<buffer[i]<<","; } cout<<endl; int arr2[5]={}; int * buffer2; buffer2 = new int [5]; for(int i=0;i<5;i++){ buffer2[i] = arr2 ? arr2[i] : 0;//true/falls cout<<buffer2[i]<<","; } cout<<endl; }

{{1}}

1 个答案:

答案 0 :(得分:9)

似乎代码可能是在动态分配arr时移植的。现在它在堆栈上,因此arr永远不会是NULL因此检查无用