ボンジュール・マドモアゼル

本サイトの情報は自己責任にてご利用下さい。

[C++再考] 配列の要素の次のアドレス

 
C++再考 [新装版] 第20章 反復子アダプタ
P270
CやC++では配列の要素の次のアドレスをつくることができるからです。つまり、a+10 は違法ではないのです。しかし、 a+11は違法です。また、a-1も違法なのです。

※int a[10]; とした場合
確認するため、「プログラミング言語C 第2版(訳書訂正版)ANSI規格準拠」を参照する。

A7.7 加法演算子
(中略)和が配列の限界の外を指すときには、終端の一つ先の最初の場所を除いて、結果は不定となる。

A7.9 関係演算子
演算子<(より小さい),>(より大きい),<=(小さいか等しい)>=(大きいか等しい)
(中略)一方、ポインタが配列の最後のメンバーを参照するときには、その比較は対応する添字の比較と同じである。Pが配列の最後のメンバーを指すときには、P+1がたとえ配列の外側を指すものであっても、P+1はPより高くなる。以上のいずれでもない場合には、ポインタの比較は定義されない。

付録A 参照マニュアルより



<<リファレンス型とオーバーロード | ホーム | 実行結果が異なるぞ>>

コメント

コメントの投稿

管理者にだけ表示を許可する

画像の文字を半角数字で下記ボックスに記入ください。
文字が読みにくい場合はブラウザの更新をすると新しい文字列が表示されます。