int の配列がある場合は、次のように言いましょう。
int iarr[5] = {0, 7, 3, 12, 99};
アドレスに存在するもの0xbfdf53a8
。これの値をループで出力したいのですが、次のようなことができます:
for(i=0; i<5; i++)
printf("value of iarr[%d] = %d\n", i, *(iarr+i));
このループが機能するのは、毎回「int」を 1 ずつインクリメントしているためです (通常の 32 ビット マシンでは、反復ごとにアドレスが 4 バイトずつ増加します)。
私の質問は、タイプ指定されたバイトオフセットが適用されるのはいつですか? それはコンパイルプロセスの一部ですか(アセンブリのどこかにあることを意味します)、それともOSレベルで行われますか?
これが標準化された方法でどのように処理されるかを推測しますが、まだその答えを見つけることができませんでした.