私は2つの配列を持っており、両方から特定のインデックスの値を取得する必要があります。これをしている間、私は何か奇妙なことがあります。 arr1のインデックス-1の値を出力すると、0が得られ、同じことがインデックス8で起こります。配列の範囲外のinidcesは0として返されると判断しました。私がarr2で同じことをすると、インデックス-1の値として29が得られます。
私は間違って何をしていますか?配列の負のインデックスを持つ矛盾した結果
int arr1[] = {33, 12, 75, 85, 62, 14, 100, 29};
printf("Nummer -1: %d\n",arr1[-1]); //outputs 0
printf("Nummer 8: %d\n",arr1[8]; //outputs 0
int arr2[] = {85, 15, 84, 96, 4, 45, 55, 12, 25, 68};
printf("Nummer -1: %d\n",arr2[-1]); //outputs 29
注:GCCコンパイラ
有効なアドレスを指している限り、負のインデックスを使用することができます。それ以外はUB – coderredoc
@ypercubeᵀᴹ-1です。 – Ned