私のラップトップが64ビットまたは32ビットのマシンであるかどうかは、どうすれば分かりますか? (それは64です)。64ビットマシン上のintおよびsizeof intポインタのサイズ
だから、私は、次の印刷について考えた:
:int main()
{
printf("%d",sizeof(int));
}
をし、その結果は奇妙に思えた4、だった
しかし、私はこれを印刷し(これは、64ビットマシンであるため)
int main()
{
printf("%d",sizeof(int*));
}
結果は8です。これは意味がありました。
問題がある:
Iが64ビットマシンを使用しているので、そのようなintは8バイト
(64ビット)を使用し、そののsizeof int型によって必要としてプリミティブ型があるべきであるべきではありません8?それはなぜそうではないのですか?
なぜint *サイズが8ですか?
ここでは混乱ビット、
ので、事前に感謝します。
'size_t'の出力に'%d 'を使用しないでください。UBを呼び出します。 –
http://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models – Mat
64ビットアーキテクチャでは32ビットに比べて整数モデルが変更されません。アドレス/ポインタの長さのみ。 – user2672165