目录
10.struct 这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型。
11.union 这个关键字是与共用体(联合体)相关的关键字
前言
从0开始记录我的学习历程,我会尽我所能,写出最最大白话的文章,希望能够帮到你,谢谢。
提示:文章作者为初学者,有问题请指正,感谢。求求轻点喷 o.O
1.关键字
1.1 基本数据类型相关的关键字
用于定义变量或者类型;
char 、short 、int 、long 、 float 、double、
struct 、union 、enum 、signed 、unsigned 、void。
以上这些是我们接下来会进行了解的。
好的 接下来我们先理解什么是数据类型的关键字?
在C语言中,数据类型相关的关键字是用来定义变量可以存储什么类型数据的“标签”。我们在编写程序时,经常需要用到各种各样的数据,比如数字、字符或者更复杂的数据结构。为了能够在程序中使用这些数据,我们需要先告诉计算机这些数据是什么类型的,以及它们会占用多少内存空间。
这就是为什么我们需要定义变量和它们的类型。变量可以看作是一个容器,它用来存储数据。而类型就是这个容器的标签,它告诉计算机这个容器可以存放什么样的数据。
例如,当我们写下:
int number;
这里的int
是一个数据类型,它表示这个变量是一个整型的变量。number
是我们给这个变量起的名字,以后我们就可以通过这个名字来使用这个变量里存储的数据了。
1.char 字符型
用 char 定义的变量是字符型变量, 占 1 个字节
char ch='a'; =为赋值号
在C语言中,char
是一个关键字,它用来定义一个能够存储单个字符的变量。这种类型的变量被称为字符型变量。当我们说一个变量是字符型的,意味着它可以存储字母、数字或者其他任何可以打印的符号。
这里的“占1个字节”是指,这种类型的变量在计算机内存中占用的空间是1个字节。一个字节等于8位(bit),足够存储一个标准的ASCII字符。
接下来看这个例子:
char ch='a';
这行代码做了两件事:
char ch;
部分声明了一个名为ch
的字符型变量。ch='a';
部分则是给这个变量赋值,意思是我们把字符'a'
存储到了变量ch
中。
等号"
="
在这里是赋值操作符,它的作用是把右边的值(这里是'a'
)赋给左边的变量(这里是‘ch'
)。
所以,当你看到这样的代码,你可以理解为:“我创建了一个名字叫ch
的小盒子,它专门用来存放一个字符。现在,我把字母a
放进了这个盒子里。”
char ch1 = ‘1’; // 正确
char ch2 = ‘1234’ ; // 错误的
这是错误的是因为'1234'
不是单个字符,而是一个字符序列。
2 .short 短整型
使用 short 定义的变量是短整型变量, 占 2 个字节
short int a =11; // -32768 ----32767
注释中的// -32768 ----32767
是在说明short int
类型变量能够存储的数值范围。由于short int
是有符号的,它可以存储的值从-32768到32767。这个范围是基于short int
占用2个字节,也就是16位,其中1位用于表示正负号,剩下的15位用于表示数值。
所以,当我们写short int a = 11;
,我们实际上是在说:“我创建了一个短整型的变量a
,并且我把数值11放进去了。(这个变量a
可以存储的数值范围是从-32768到32767)
3. int 整型
用 int 定义的变量是整型变量,在 32 位系统下占 4 个字节,在 16 平台下占2 个字节。
int a =44; // -20 亿---20 亿
在不同的计算机系统中,整型变量占用的内存空间可能不一样。这主要取决于计算机的操作系统和处理器的架构。所以,当我们说:
- 在32位系统下,
int
类型的变量占4个字节,意味着这个变量在内存中占用32位的空间。因为1个字节等于8位,所以4个字节就是32位。 - 在16位系统下,
int
类型的变量占2个字节,意味着这个变量在内存中占用16位的空间。
关于“-20亿到20亿”,这是在说明这个整数类型的变量可以存储的数值范围。在C语言中,int
类型通常占用4个字节的内存空间(在32位系统下),因此它可以表示的整数范围是从负20亿到正20亿。
4. long 长整型
用 long 定义的变量是长整型的,在 32 位系统下占 4 个字节
long int a =66;
当我们在C语言中使用long
关键字来定义一个变量时,我们创建的是一个长整型变量。
- 首先,我们知道
int
类型的变量可以存储整数,但是有时候我们需要更大范围的整数,比如超过了正20亿或负20亿。这时,我们就可以使用long
类型。 long
类型的变量在内存中占用的空间通常比int
更大。在32位系统下,它通常占用4个字节,而在64位系统下,它通常占用8个字节。- 因此,
long
类型的变量可以存储更大的整数,范围从负数几十亿到正数几十亿不等。
总之,你可以把long
类型的变量想象成一个更大的水桶,它可以装更大范围的整数。所以,当你需
要处理超过int
范围的整数时,就可以使用long
类型的变量了。
5.float 单浮点型 (实数)
用 float 定义的变量是单浮点型的实数, 占 4 个字节。
float b =3.8f;
float
是一种数据类型,它用来存储带有小数点的数字,也就是浮点数。
如果你在C语言中写 float b = 3.8f; 必须把 f 加上
- 如果你不加
f
,编译器会默认这个数值是double
类型。也就是说,3.8
会被解释为double
类型的数值。 - 如果你加上
f
,就明确告诉编译器这个数值是float
类型,而不是double
类型。
但是如果你忘记加,编译器会自动将其视为 double
类型,只要你的代码没有其他类型的冲突,也不会出错。
6 .double 双浮点型 (实数)
用 double 定义的变量是双浮点型的实数, 占 8 个字节。
double b =3.8;
double
可以表示更多位的小数,因此它比 float
更精确。double
类型的变量适用于需要更高精度的情况,但要注意它会占用更多的内存空间。如果你需要处理非常精确的小数,可以选择使用 double
类型。
7.signed 有符号(正负)
在定义 char 、整型(short 、int 、long) 数据的时候用 signed 修饰,代表咱们定义的数据符号的,可以保存正数,也可以保存负数 例 :signed int a=10;
signed int b =-6;
注意:默认情况下 signed 可以省略 即 int b=-6;//默认 b 就是有符号类型的数据。
8.unsigned 无符号
在定义 char 、整型(short 、int 、long) 数据的时候用 unsigned 修饰,代表咱们定义的数是无符号类型的数据只能保存正数和 0。
unsigned int a =101;
unsigned int a =-101; //错误
9.void 空类型的关键字
char 、int 、float 都可以定义变量 void 不能定义变量,没有 void 类型的变量
void 是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值 例:
void fun(void)
{ }
代表 fun 函数没有返回值,fun 函数没有参数。
总之,void
是一个用来描述“空”的概念。它告诉编译器某个函数没有参数或没有返回值。所以,当你看到 void
关键字时,就知道它是用来修饰函数的,而不是用来定义变量的。
这下面内容超纲了 理解一下就行了,以后学习到对应内容的时候自然就明白了。
10.struct 这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型。
首先,我们知道在编程中,有时候我们需要把不同类型的数据组合在一起,就像是装在一个盒子里一样。这个盒子可以包含整数、字符、浮点数等各种数据。
这时,我们可以使用 struct
来定义一个结构体类型。结构体就像是一个自定义的数据类型,它可以包含多个不同的变量,每个变量可以是不同的数据类型。
例如,我们可以这样定义一个结构体:
struct Person {
char name[50];
int age;
float height;
};
这里的 Person
就是我们自己定义的结构体类型。它包含了三个变量:name
(一个字符串,用来存储人的名字)、age
(一个整数,用来存储年龄)、height
(一个浮点数,用来存储身高)。
- 然后,我们可以创建一个属于这个结构体类型的变量,比如:
struct Person person1;
这样,我们就创建了一个名字叫 person1
的变量,它的类型是 Person
,也就是我们刚刚定义的结构体类型。现在,我们可以给这个变量的成员赋值,比如:
person1.age = 30;
person1.height = 1.75;
strcpy(person1.name, "NB");
这样,我们就把名字是 NB、年龄是 30 岁、身高是 1.75 米的人装进了这个结构体变量里。
总之,struct
关键字用来定义结构体类型,让我们可以自己创建一种包含不同类型数据的“盒子”,方便组织和管理数据。
11.union 这个关键字是与共用体(联合体)相关的关键字
首先,我们知道在编程中,有时候我们需要在同一个内存空间里存储不同类型的数据。比如,我们可能需要在一个盒子里既放整数,又放浮点数,或者放字符。
这时,我们可以使用 union
来定义一个共用体(也叫联合体)。共用体就像是一个特殊的盒子,它可以容纳不同类型的数据,但是同一时间只能存放其中的一种类型。
例如,我们可以这样定义一个共用体:
union Data {
int intValue;
float floatValue;
char charValue;
};
这里的 Data
就是我们自己定义的共用体类型。它包含了三个成员变量:intValue
(整数类型)、floatValue
(浮点数类型)和 charValue
(字符类型)。
- 然后,我们可以创建一个属于这个共用体类型的变量,比如:
union Data myData;
这样,我们就创建了一个名字叫 myData
的变量,它的类型是 Data
,也就是我们刚刚定义的共用体类型。现在,我们可以给这个变量的成员赋值,比如:
myData.intValue = 42;
或者:
myData.floatValue = 3.14;
这样,我们就可以在同一个盒子里存放不同类型的数据,但是要注意,只能同时存放其中的一种类型。
总之,union
关键字用来定义共用体类型,让我们可以在同一个内存空间里灵活地存放不同类型的数据。
12.enum 与枚举类型相关的关键字
首先,我们知道在编程中,有时候我们需要表示一组相关的常量或者选项。比如,我们可能需要表示一周的星期几,或者一年的季节。
这时,我们可以使用 enum
来定义一个枚举类型。枚举类型就像是一个自定义的数据类型,它包含了一些预定义的常量值。
例如,我们可以这样定义一个枚举类型:
enum Weekday {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
};
这里的 Weekday
就是我们自己定义的枚举类型。它包含了七个常量值:MONDAY
、TUESDAY
、WEDNESDAY
、THURSDAY
、FRIDAY
、SATURDAY
和 SUNDAY
。
- 然后,我们可以创建一个属于这个枚举类型的变量,比如:
enum Weekday today = WEDNESDAY;
这样,我们就创建了一个名字叫 today
的变量,它的类型是 Weekday
,也就是我们刚刚定义的枚举类型。现在,我们可以把 WEDNESDAY
这个常量值赋给这个变量。
总之,enum
关键字用来定义枚举类型,让我们可以自己创建一组相关的常量,方便表示不同的选项或状态。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了C语言中基本数据类型相关的关键字,祝愿你我的朋友在学习的路上一帆风顺,也祝愿我会成为一个优秀的嵌入式工程师。