添字C / C ++配列は負であってもよいです

今日は負になることができ、C / C ++の配列のインデックスに出くわした、非常に奇妙でした。通常、コードを書く、添字はこれを考慮することはありません、ゼロから始めています。書き込みテストコードビット、実際に渡されました。しかし、値が混乱です。しかし、あなたは、それが出力正しい値をすることができ、配列の範囲内の基本的な値を書き留めます。

INT [5] = {1,2,3,4,5};
 INT * PTr1は=(INT *)(A + 1);
 
  のprintf( "%のX、Xの%"、PTr1は[-1]);
1
2
3
4
結果は5であり、
後に、インターネットを少し確認した瞬間を考えて、私は実際には非常に異常を感じました。アレイヘッド・ポインタ・アレイは、実際にC / C ++コンパイラでは、移動しているの添字は、チェックなし配列の境界はありません。上記の例では、あなたの出力A [6]は間違っていないですが、それの混乱の値。
実際には、ほとんど未満の開発では、この機能は、その理由は、C / C ++コンパイラ怠け者です。JavaまたはOCでは、彼らが与えられています。


 

公開された351元の記事 ウォン称賛52 ビュー190 000 +

おすすめ

転載: blog.csdn.net/u014644594/article/details/104008785