これは C から取られ、それに基づいています。32ビットのポインタがあるとしましょう
char* charPointer;
いくつかのデータを含むメモリ内の場所を指します。このポインタの増分が 1 バイトなどであることがわかっています。一方、
int* intPointer;
また、メモリ内のある場所を指しており、それを増やすと、1 を追加すると 4 バイト増える必要があることがわかります。
問題は、これらのポインターを使用して、完全な 32 ビットのアドレス指定可能スペース (2^32) (4 ギガバイト) をどのようにアドレス指定できるかということchar*
ですint*
。これにより、32 バイトではなく、それ以下になります。
この質問を入力するとき、私は考えに至りました。おそらく、それはすべてシンタックス シュガーであり、本当にコンパイラーのためのものなのでしょうか? 生のポインターは 32 ビットだけで、型は気にしないのでしょうか? そうですか?