转载文章一:
char/signed char/unsigned char: 1个字节;
char*(即指针变量):
2个字节(16位编译器)
4个字节(32位编译器)
8个字节(64位编译器)
short int: 2个字节
int/unsigned int:
2个字节(16位编译器)
4个字节(32/64位编译器)
long int: 4个字节
float: 4个字节
double: 8个字节
long double: 8/10/12/16?
long/unsigned long:
4个字节(16/32位编译器)
8个字节(64位编译器)
long long: 8个字节
string: 字符个数+1
转载文章二:
C语言的基本数据类型有以下几个: int 整型 char 字符型 float 单精度浮点型 double 双精度浮点型 另外,在基本数据类型基础上附加一些限定词, 得到扩充的数据类型。short,long可以应用到整型, unsigned可以应用到整型和字符型: short int(或short) 短整型 long int(或long) 长整型 unsigned int 无符号整型 unsigned short 无符号短整型 unsigned long 无符号长整型 unsigned char 无符号字符型
整型C标准没有规定各类数据所占内存字节数,通常一个int型数据所占内存与计算机字长大小相同,为16位或32位,short型数据通常占16位,long型数据是32位。每种编译器可以为硬件选择适合的长度,仅受一些限制,如short 和int 型数据至少占16位,long型至少占32位, short型数据不能超过int型数据的字节数,而int型不长于long 型。 无符号的数总是正数或零,服从数学式子2n,其中n是这种类型的二进制位数。例如,int型是16位,它的数据取值范围在-32768-32767之间,而unsigned int型数据取值范围在0-65535之间。下表列出了不同机器上整型数据的取值范围。
16位机器
32位机器
数据类型
所占位数
取值范围
所占位数
取值范围
int
16
-32768~32767
32
-21亿~21亿
short
16
-32768~32767
16
-32768~32767
long
32
-21亿~21亿
32
-21亿~21亿
unsigned int
16
0~65535
32
0~42亿
unsigned short
16
0~65535
16
0~65535
unsigned long
32
0~42亿
32
0~42亿
字符型字符型数据存储时占用8位,它实际存储的是字符对应ASCII码(美国标准信息交换码American Standard Code for Information Interchange)。如一个char型数据'A',其ASCII码为65,故实际存储的内容是65。unsigued char型数据取值范围为0-255,char型数据取值范围为-128-127。字符有符号或无符号是依赖于机器的,但是可打印的字符总是正的。 由于在内存中字符型数据是以ASCII码形式存放,其形式与整型类似,因而在C语言中,字符型数据与整型数据可以通用,字符型数据所有的性质与一字节整型量相同。