C语言整数类型在X86和X64下的字节大小

C声明 32位机器(X86) 64位机器(X64)
char 1 1
short int 2 2
int 4 4
long int 4 8
long long int 8 8
char * 4 8
float 4 4
double 8 8

几个注意点:

1:指针类型变量的大小只取决于计算机系统的位数,它的大小也等于该计算机系统的int类型大小,即该计算机系统“字”的大小。(这句话中的int其实是上面表格中的long int,因为C语言为了保持跨平台的统一,所以char, short int, int, long long int都采用了固定位数,不随系统位数变化而变化,但是long int类型是根据系统位数决定的!)

2:在32位系统下,是无法直接操作64位的整数的,所以32位下的long long int的操作是编译器通过一系列位运算完成的。

3:一个计算机系统的寻址能力由“字”决定,例如:32位系统下的“字”大小为32位(意思就是采用32位大小的整数来表示每个内存地址),所以寻址能力为2的32次方,地址范围为0 ~ 2^32 - 1。

原文地址:https://www.cnblogs.com/ryzz/p/9418171.html