title: Difference between int* and int[] in C++
body: <p>Context: C++
  Consider the example below</p>
  
  <pre><code>class TestClass
  {
  private:
      int A[];
      int *B;
  
  public:
      TestClass();
  };
  
  TestClass::TestClass()
  {
      A = 0; // Fails due to error: incompatible types in assignment of `int' to `int[0u]'
      B = 0; // Passes
  }
  </code></pre>
  
  <p>A = 0 fails but B = 0 succeeds. What's the catch? What exactly is A? A constant pointer? How do I initialize it then?</p>