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

和机器字长及编译器有关系:

所以,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位。 

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; } ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值