title: Default values for array arguments
body: <p>Just playing around a little with C++. What I really want to do is to be able to setup a function with default values defined for an array or pointer argument. To keep things simple, let's just use an array. Like so:</p>
  
  <p><code>void experimentA(char a[3] = {'a', 'b', 'c'});</code></p>
  
  <p>The compiler (LLVM GCC 4.2 with GNU99) complains "Expected expression". That is quite obtuse, but I was told by colleagues that this is happening because the 'value' I'm trying to assign is statically allocated, whereas the variable I'm trying to assign it to (<code>a[3]</code>) is auto.</p>
  
  <p>But I'm not completely sure if that's the case, since I'm able to do this:</p>
  
  <p><code>void experimentB(char a[3] = "abc"); </code></p>
  
  <p>And the compiler merely warns me that string-literal to char* conversion is deprecated. </p>
  
  <p>I don't understand how "abc" differs fundamentally from {'a','b','c'} in order to cause this discrepancy. Any insight is much appreciated!</p>