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