title: assignment operator and conditional statements
body: <p>I have hard time understanding the following code <code>buffer[i] = arr ? arr[i] : 0;</code>. 
  Does this  mean that if <code>arr</code> contain any thing then its equal to <code>buffer[i]</code> and if it doesn't it equals to <code>0</code>?  </p>
  
  <pre><code>#include &lt;iostream&gt;
  using namespace std;
  int main ()
  {
      int arr[5]={11,22,33,44,55};
      int * buffer;
      buffer = new int [5];
  
      for(int i=0;i&lt;5;i++){
          buffer[i] = arr ? arr[i] : 0;//true/falls
          cout&lt;&lt;buffer[i]&lt;&lt;",";
      }
      cout&lt;&lt;endl;
  
      int arr2[5]={};
      int * buffer2;
      buffer2 = new int [5];
  
      for(int i=0;i&lt;5;i++){
          buffer2[i] = arr2 ? arr2[i] : 0;//true/falls
          cout&lt;&lt;buffer2[i]&lt;&lt;",";
      }
      cout&lt;&lt;endl;
  }
  </code></pre>