整数配列と文字配列を指しているときにポインタの動作が異なるのはなぜですか?ポインタと配列[intポインタとcharポインタ]
例えば
int num[] = {1,2,3};
cout << num ;
これは最初の要素のADDRESSを出力
char list[] = { '1', '2', '3'};
cout << list ;
これは、配列の全体の要素のVALUEをプリントアウト!
同様
cout << (num+1) ;
第二の要素のアドレスをプリントアウトします。
cout << (list+1);
がプリントアウト私の理解から、第二の要素
から始まる配列全体のVALUEをしながら、配列名は、配列の最初の要素へのポインタです。逆参照演算子(*)がなければ、ポインタは要素のアドレスを返さなければなりません。しかし、なぜcharポインタが値を返すのですか?
異なっているのは、 'operator <<'はオーバーロードされた関数であり、 'char *'には他のポインタ型とは異なるオーバーロードがあります。 –
CはC++ではありませんCです。 – Olaf
私はこの問題がC++専用であることを認識しませんでした。私は、これがPointers&arrayのコンセプト全体と関連していると思いました。申し訳ありません – Aditya