在C语言中,double、long、unsigned、int、char类型数据所占字节数

本文详细介绍了在16位、32位及64位编译器环境下各种基本数据类型的字节大小,包括char、int、long等,并阐述了unsigned关键字的作用。

和机器字长及编译器有关系: 所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short int至少应为16位(2字节) 4 long int至少应为32位。 unsigned 是无符号的意思。 例如: 16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 4个字节 32位编译器

char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节

int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 4个字节 64位编译器 char :1个字节 char*(即指针变量): 8个字节 short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 8个字节 long long: 8个字节 unsigned long: 8个字节

### C语言中各种数据类型字节数 在C语言中,不同数据类型的字节大小取决于编译器和运行环境(如32位或64位系统)。以下是常见的数据类型及其用的字节数: #### 基本数据类型 - **`char`**:1个字节[^2]。 - **`short`**:2个字节[^2]。 - **`int`**:4个字节(32位系统)/ 4个字节(64位系统)[^3]。 - **`long`**:4个字节(32位系统)/ 8个字节(64位系统)[^3]。 - **`long long`**:8个字节[^2]。 #### 无符号整型 - **`unsigned char`**:1个字节[^3]。 - **`unsigned short`**:2个字节[^3]。 - **`unsigned int`**:4个字节(32位系统)/ 4个字节(64位系统)[^3]。 - **`unsigned long`**:4个字节(32位系统)/ 8个字节(64位系统)[^3]。 - **`unsigned long long`**:8个字节[^3]。 #### 浮点类型 - **`float`**:4个字节。 - **`double`**:8个字节[^2]。 - **`long double`**:16个字节(具体大小可能因平台而异)[^4]。 #### 指针类型 - **指针变量**:4个字节(32位系统)/ 8个字节(64位系统)。 #### 固定宽度整数类型 - **`uint8_t`**:1个字节[^3]。 - **`uint16_t`**:2个字节。 - **`uint32_t`**:4个字节[^3]。 - **`uint64_t`**:8个字节。 #### 示例代码 以下代码可以用于测试当前平台上各数据类型的大小: ```c #include <stdio.h> int main() { printf("Size of char: %lu bytes\n", sizeof(char)); printf("Size of short: %lu bytes\n", sizeof(short)); printf("Size of int: %lu bytes\n", sizeof(int)); printf("Size of long: %lu bytes\n", sizeof(long)); printf("Size of long long: %lu bytes\n", sizeof(long long)); printf("Size of float: %lu bytes\n", sizeof(float)); printf("Size of double: %lu bytes\n", sizeof(double)); printf("Size of pointer: %lu bytes\n", sizeof(void*)); return 0; } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值