C++ static member, a little confused here
<pre><code>    //static member in classes
#include &lt;iostream&gt;
using namespace std;

class CDummy {
public:
    static int n;
    CDummy() {n++;};
    ~CDummy(){n--;};
};

int CDummy::n =0;

int main(){
    CDummy a;
    CDummy b[5];
    CDummy *c = new CDummy;
    cout &lt;&lt; a.n &lt;&lt; endl;
    delete c;
    cout &lt;&lt; CDummy::n &lt;&lt; endl;
    return 0;
}
</code></pre>

<p>The result is  7, 6.
Can anybody explain it for me?
and I don't understand this "CDummy b[5];". People never use syntax like this in C, right? what is this here?
Thank you!</p>
