質問です。
int array[i];に対して、int *ptr;を用意し、
 ptr = array;
 cout << ++ptr << endl;
と書くと問題ないのに、
 cout << ++array <<endl;
と書くと、
 error C2105: '++' には左辺値が必要です。
と出てしまい、コンパイルが通りません。

arrayとそのまま配列名を書くと、
配列の先頭アドレス(先頭要素のポインタ)になる、
と勉強したのですが、なぜこのようなことがおきるのでしょうか。

どのように解釈すればよいのか、ご教示ください。
お願いいたします。