私のマシンは centos システムを実行する 32 ビット PC で、GCC を使用して C コードをコンパイルしました。そして、int 変数は 4 バイトを占有するので、このようなコードを書きました...
#include "stdio.h"
int main(){
int a=1;
printf("%c",*(&a+1)+65);
printf("%c",*(&a+2)+65);
printf("%c",*(&a+3)+65);
}
私はこのように考えていました:PCは32ビットなので、変数は次のようにメモリに格納する必要があります:
&a 00000001
&a+1 00000000
&a+2 00000000
&a+3 00000000
だから私は答えが :AAA であるべきだと思い
ます
。さらに、最後の2つのprintf.を消化すると、次のようになります。
#include "stdio.h"
int main(){
int a=1;
printf("%c",*(&a+1)+65);
}
それから私は私が欲しいものを手に入れました:A
私のコードに何か問題があるのでしょうか;本当に間違っているのは、変数をメモリに格納することについての私の考えです...私を助けてください、ありがとう。