c语言中常用数据类型的字节数

本文详细介绍了在Windows及Linux系统中,32位与64位编译环境下各种基本数据类型的字节长度,包括char、int、double等,并特别指出指针长度的变化。

转自:http://wuyuans.com/2012/06/the-length-of-data/

数据类型的长度跟编译器和系统有关,比如在windows下的32位编译器下的数据类型字节数:

char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。)
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个字节(64位的寻址空间是2^64, 即64个bit,也就是8个字节。)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节

除了指针的长度改变了外,其他都保持原样。
但如果是linux系统的话,在64位编译器下long和unsigned long类型将变成8个字节。

 

### C语言中的常用数据类型 #### 基本类型 C语言提供了多种基本数据类型来满足不同编程需求。这些类型主要分为两大类:整型和浮点型。 #### 整型 整型用于存储整数值,具体细分如下: - **`char`**: 占用1个字节,通常用来表示字符,取值范围为 `-128` 到 `127` 或者 `0` 到 `255`(取决于编译器实现),这可以通过指定有符号或无符号版本来控制[^4]。 - **`int`**: 默认占用4个字节,在大多数现代系统上其取值范围是从 `-2,147,483,648` 至 `2,147,483,647`。 - **`short int` 和 `long int`**: 这些变体允许更短或更长的整数表示形式。前者一般占2个字节,后者则通常是4个字节,不过具体的大小依赖于平台架构[^1]。 对于上述每种整型,还可以通过添加前缀 `unsigned` 来创建仅能保存非负数的版本,从而扩大正数的最大可能值。 #### 浮点型 当需要处理带有小数部分的数据时,则会使用到浮点数类型: - **`float`**: 大约提供7位有效数字精度,适合单精度计算场景。 - **`double`**: 提供大约15至16位的有效数字精度,适用于更高精度的需求。 - **`long double`**: 精度高于 `double`,但确切规格同样由硬件决定。 除了以上提到的基础类型外,还有其他一些特殊用途的数据类型值得注意: #### 特殊类型 - **`void`**: 表示没有任何特定类型的含义。它主要用于定义函数返回类型为空以及声明泛型指针[^3]。 下面给出一段简单的代码片段展示如何声明并初始化不同类型变量的例子: ```c #include <stdio.h> int main() { // 定义各种基础类型的变量 char ch = 'A'; // 字符型 int num = 100; // 整形 float fval = 3.14f; // 单精度浮点型 double dval = 2.71828; // 双精度浮点型 printf("Character: %c\n", ch); printf("Integer value: %d\n", num); printf("Float value: %.2f\n", fval); printf("Double precision floating point number: %.5lf\n", dval); return 0; } ``` 此程序展示了如何利用printf函数打印出不同种类的数据项,并且说明了格式化字符串中相应的转换说明符。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值