📅  最后修改于: 2023-12-03 15:14:25.258000             🧑  作者: Mango
C是一种静态类型的编程语言,数据类型指定了变量或表达式可以保存的数据类型,以及数据存储在内存中的方式。C中的数据类型包括基本数据类型和派生数据类型。
C中的基本数据类型包括整型、浮点型、字符型和布尔型。
整型分为有符号和无符号,分别表示正、负和0。C中的整型包括int
、short
和long
,其中int
通常默认为32位,short
为16位,long
为32或64位,具体取决于编译器和操作系统。
int a = 10;
short s = 2;
long l = 1000000000L;
unsigned int ui = 20;
浮点类型包括单精度float
和双精度double
,分别占用4和8字节。浮点型可以用来存储实数,但精度有限。
float f = 3.14f;
double d = 123.456;
字符型数据表示单个字符,使用char
类型,占用1字节。字符可以通过ASCII码表示。字符串是一组字符的集合,使用字符数组char[]
表示。
char c = 'A';
char str[] = "Hello World";
C中的布尔型只有两个值:真(1
)和假(0
),使用_Bool
或bool
类型表示。
_Bool b1 = 1;
bool b2 = false;
派生数据类型是由基本数据类型派生出来的,包括数组、结构体、共用体和枚举。
数组是同一类型数据的有序集合,可以使用下标访问,下标从0开始。定义时需要指定元素类型和数组长度。
int arr[5] = {1, 2, 3, 4, 5};
结构体是不同类型数据的有序集合,可以给每个成员变量命名。结构体使用struct
关键字定义,可以使用.
访问成员变量。
struct student {
int id;
char name[20];
float score;
};
struct student stu = {1, "Jack", 90.5};
共用体是不同类型数据的互斥集合,占用内存大小相同,每次只能使用一个成员变量。共用体使用union
定义。
union data {
int i;
float f;
};
union data d;
d.i = 10;
printf("%d\n", d.i);
d.f = 3.14f;
printf("%f\n", d.f);
枚举是一组可以取其中之一的有限集合,每个成员都有一个整数值与之关联。枚举使用关键字enum
定义。
enum color {
RED = 1,
GREEN,
BLUE = 5,
YELLOW
};
enum color c = RED;
printf("%d\n", c);
enum color g = GREEN;
printf("%d\n", g);
enum color y = YELLOW;
printf("%d\n", y);
以上是C中的基本数据类型和派生数据类型。程序员在设计变量时需要合理选择数据类型,以及了解不同数据类型的存储大小和精度限制。