C语言中各数据类型的大小

1. 基本整数类型

  • char:1字节
  • short:通常为2字节
  • int:通常为4字节
  • long:通常为4或8字节
  • long long:通常为8字节

2. 浮点数类型

  • float:通常为4字节
  • double:通常为8字节
  • long double:大小平台相关,通常为8或16字节

3. 指针类型

  • 所有指针类型的大小取决于平台,但通常为4或8字节,分别对应32位和64位系统。

4. 数组类型

  • 数组的大小取决于元素类型和数组的长度。例如,int arr[5] 在典型情况下大小为 4 * 5 = 20 字节。

5. 结构体类型

  • 结构体的大小取决于其成员的大小和对齐方式。对齐方式有时受编译器和编译选项的影响。

6. 枚举类型

  • 枚举类型的大小通常与int相同,即4字节。

在实际编程中,我们可以使用sizeof运算符来获取不同数据类型的大小。以下是一个简单的示例代码:

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 long double: %lu bytes\n", sizeof(long double));

    printf("Size of pointer: %lu bytes\n", sizeof(int*));

    return 0;
}
bash 复制代码
Size of char: 1 bytes
Size of short: 2 bytes
Size of int: 4 bytes
Size of long: 4 bytes
Size of long long: 8 bytes
Size of float: 4 bytes
Size of double: 8 bytes
Size of long double: 16 bytes
Size of pointer: 8 bytes

请注意,上述大小是通常情况下的一般规则,实际大小可能会受到编译器、操作系统和硬件架构的影响。因此,在编写代码时,要特别注意处理不同平台和编译器的差异,以确保代码的可移植性和性能。

相关推荐
k4m7v2pz几秒前
从 Python 搬到 Rust:pyglet MIDI DAW 变成 egui 鬼畜采样器的迁移复盘
开发语言·python·rust
C++ 老炮儿的技术栈3 分钟前
MFC CPtrArray的用法
开发语言·数据结构·c++·算法·mfc·c
佳児素花痴╮7 分钟前
C++基础速通
开发语言·c++
是立不是利11 分钟前
深入理解JavaScript事件委托
开发语言·前端·javascript
啊阿狸不会拉杆11 分钟前
《计算机网络-自顶向下方法》6.4 交换局域网 读书笔记
开发语言·计算机网络·php
心中有你021425 分钟前
Python Tkinter 情侣恋爱日记桌面小程序(本地文件存储,无数据库)
开发语言·python
是隼人1 小时前
buuctf-pwn bypwn(ret2shellcode)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
疯狂打码的少年1 小时前
【计算机网络】OSI/RM七层模型(层次结构、各层功能速览)
开发语言·笔记·计算机网络·php
小灰灰搞电子1 小时前
Rust+Slint 实现ModbusRTU从机调试助手源码分享
开发语言·rust·modbusrtu
程序喵大人1 小时前
【C++入门】值类别与表达式 - 03 引用绑定:为什么有些参数能接住临时对象
开发语言·c++·引用绑定