title: Is "struct type variablename" valid as a declaration?
body: <p>My lecturer just astounded me by insisting that the following is a valid C++ statement:</p>
  
  <pre><code>struct charlistrecord *next
  </code></pre>
  
  <p>The complete condition was found in declaring a recursive datatype in C/C++ as follows:</p>
  
  <pre><code>typedef struct charlistrecord
  {
       char data;
       struct charlistrecord *next;
  } *charlist;
  </code></pre>
  
  <p>I want to know whether maybe there has been a time when this was accepted syntax or whether I've just been dumb for months of thinking I know C++.</p>