Мне просто интересно, как я могу узнать, есть ли у моего ноутбука 64-разрядная или 32-разрядная машина. (это 64).Размер int и sizeof указателя int на 64-битной машине
Так, я думал о печати следующее:
int main()
{
printf("%d",sizeof(int));
}
и результат был 4, который, казалось странным (так как это 64 бит машина)
Но, когда я напечатал:
int main()
{
printf("%d",sizeof(int*));
}
результат был 8, что имело больше смысла.
Возникает вопрос:
Поскольку я использую 64 битной машине, не должен примитивный тип такой, как INT должен использовать 8 байт
(64 бит) и тем, что SizeOf междунар должно быть 8? Почему это не так?
И почему размер int * равен 8?
немного запутался здесь,
так спасибо заранее.
Не используйте '% d' для печати' size_t', он вызывает UB. –
http://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models – Mat
64-битная архитектура не изменяет целочисленную модель по сравнению с 32 бит. Только длина адреса/указателя. – user2672165