C语言中数据类型
一、C 语言中数据类型
基本数据类型:
- 整型(int):用于存储整数,如:1、2、3等。
- 字符型(char):用于存储单个字符,如:‘a’、‘b’、'c’等。
- 浮点型(float):用于存储小数,如:1.0、2.5、3.14等。
- 双精度浮点型(double):用于存储更高精度的小数,如:1.000、2.567、3.1415926等。
2、构造数据类型:
- 数组(array):用于存储同类型数据的集合,如:int arr[5] = {1, 2, 3, 4, 5};
- 结构体(struct):用于存储不同类型数据的集合,如:
struct student {
char name[20];
int age;
float score;
};
- 枚举类型(enum):用于定义一组有名字的整数常量,如:
-
enum week { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday };
-
3、指针类型(pointer):用于存储变量或函数的内存地址,如:int *p;
二、不同数据类型占用字节数
-
1、不同数据类型中,主要是int 类型变化比较大, int 型数据是根据编译器的位数来的。一个字节(Byte)是8位(bit). 在早期计算机系统中,整数类型的大小经常与处理器的字长(word size)相对应。随着计算机技术的发展,处理器的字长不断增加,在32位系统上,它通常是4个字节(4*8bit=32bit);而在某些64位系统上int也维持4个字节,是为了兼容32位。
-
2 、另一个是指针类型,因为指针类型保存的是地址,所以这个大小必须是能一个保存最大地址值。所以指针变量的大小通常是系统位数的最大值,这种设计确保了指针变量能够在系统的整个内存范围内进行寻址,从而支持程序的正常运行。
-
3、同样的编译器,short字节小于等于 int. long字节大于等于int.
-
4、如果在long类型和int类型占用空间相同的机器上编写代码,当确实需要32位的整数时,应使用long类型而不是int类型,以便把程序移植到16位机后仍然可以正常工作。类似地,如果确实需要64位的整数,应使用long long类型。
#include <stdio.h>
int main() {
printf("Size of char: %zu bytes\n", sizeof(char));
printf("Size of int: %zu bytes\n", sizeof(int));
printf("Size of long: %zu bytes\n", sizeof(long));
printf("Size of long long: %zu bytes\n", sizeof(long long));
printf("Size of float: %zu bytes\n", sizeof(float));
printf("Size of double: %zu bytes\n", sizeof(double));
printf("Size of pointer: %zu bytes\n", sizeof(void*));
return 0;
}
三、不同数据类型所能表示的范围
- float 类型的有效位数一般是6到7位,后面的都是计算机随机生成的。