嘿,小伙伴们!今天咱们来一场 C 语言关键字的趣味之旅。C 语言的关键字就像是构建程序的魔法砖块,每一个都有着独特的功能和用途。为了让大家更容易理解,我将这些关键字分为两组:简单易懂的和稍微复杂一点的。无论你是初学者还是有一定经验的开发者,都能在这篇博客中找到有用的知识点。
目录
A组:简单易懂的关键字
int
int
是 C 语言中最常见的关键字之一,用于声明整数类型的变量。它可以存储整数,比如 1、2、-3 等。几乎每个 C 程序都会用到它。
c
int age = 25; // 声明一个整数变量 age,并赋值为 25
char
char
是字符类型的关键字,用于存储单个字符,比如 'A'、'b'、'5' 等。它占用 1 个字节的空间。
c
char grade = 'A'; // 声明一个字符变量 grade,并赋值为 'A'
float
float
是浮点类型的关键字,用于存储小数,比如 3.14、-0.5 等。它占用 4 个字节的空间。
c
float pi = 3.14f; // 声明一个浮点变量 pi,并赋值为 3.14
double
double
是双精度浮点类型的关键字,用于存储更高精度的小数,比如 3.1415926 等。它占用 8 个字节的空间。
c
double pi = 3.1415926; // 声明一个双精度浮点变量 pi
if
if
是条件语句的关键字,用于根据条件执行不同的代码块。它是程序逻辑控制的基础。
c
int score = 80;
if (score >= 60) {
printf("及格啦!\n");
}
else
else
与 if
配合使用,表示当条件不满足时执行的代码块。
c
int score = 50;
if (score >= 60) {
printf("及格啦!\n");
} else {
printf("需要努力!\n");
}
for
for
是循环语句的关键字,用于重复执行一段代码。它的结构是 for (初始化;条件;更新)
。
c
for (int i = 0; i < 5; i++) {
printf("这是第 %d 次循环\n", i);
}
while
while
是另一种循环语句的关键字,用于在条件为真时重复执行代码。
c
int i = 0;
while (i < 5) {
printf("i: %d\n", i);
i++;
}
do
do ... while
是一种至少执行一次的循环语句。
c
int i = 0;
do {
printf("i: %d\n", i);
i++;
} while (i < 5);
break
break
用于跳出循环或 switch
语句。
c
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当 i 为 5 时,跳出循环
}
printf("%d\n", i);
}
continue
continue
用于跳过当前循环的剩余部分,直接进入下一次循环。
c
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 跳过偶数
}
printf("%d\n", i); // 输出奇数
}
return
return
用于从函数中返回一个值,并结束函数的执行。
c
int add(int a, int b) {
return a + b; // 返回两个数的和
}
void
void
表示“无类型”,常用于函数不返回值或指针不指向数据类型时。
c
void printMessage() {
printf("Hello, World!\n");
}
B组:稍微复杂一点的关键字
struct
struct
用于定义结构体,结构体是一种用户自定义的数据类型,可以包含多个不同类型的成员。
c
struct Person {
char name[50];
int age;
float height;
};
struct Person person1 = {"Alice", 25, 165.5};
union
union
与 struct
类似,但它的所有成员共享同一块内存空间。
c
union Data {
int i;
float f;
char str[20];
};
union Data data;
data.i = 10;
printf("data.i: %d\n", data.i);
data.f = 3.14;
printf("data.f: %f\n", data.f);
typedef
typedef
用于为已有的数据类型定义一个新的名字,方便简化代码。
c
typedef unsigned int uint;
uint num = 10; // 等价于 unsigned int num = 10;
enum
enum
用于定义枚举类型,枚举是一种用户自定义的数据类型,包含一组命名的常量。
c
enum Week {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
enum Week today = Monday;
extern
extern
用于声明变量或函数是在其他文件中定义的,方便在多个文件中共享。
c
// file1.c
int globalVar = 10;
// file2.c
extern int globalVar;
printf("%d\n", globalVar); // 输出 10
static
static
用于声明静态变量,静态变量在程序的生命周期内都存在,而不是每次函数调用时重新创建。
c
void func() {
static int count = 0;
count++;
printf("count: %d\n", count); // 每次调用都会累加
}
const
const
用于声明常量,常量的值在程序运行时不能被修改。
c
const int MAX_SIZE = 100; // MAX_SIZE 的值不能修改
volatile
volatile
用于声明变量可能会被程序之外的因素(如硬件中断)修改,防止编译器优化。
c
volatile int sensorData;
sizeof
sizeof
用于获取变量或数据类型的大小(以字节为单位)。
c
int a;
printf("int 的大小是:%lu 字节\n", sizeof(a)); // 输出 int 的大小
goto
goto
用于无条件跳转到程序中的某个标签位置,但滥用 goto
会让代码难以维护。
c
goto end;
printf("这段代码不会被执行\n");
end:
printf("跳转到这里\n");
switch
switch
用于多分支选择,搭配 case
和 default
使用。
c
int option = 2;
switch (option) {
case 1:
printf("选择 1\n");
break;
case 2:
printf("选择 2\n");
break;
default:
printf("未知选择\n");
}
case
case
是 switch
语句的一部分,表示一个分支。
c
// 见 switch 示例
default
default
是 switch
语句的一部分,表示默认分支。
c
// 见 switch 示例
register
register
用于建议编译器将变量存储在寄存器中,以提高访问速度,但现代编译器通常会自动优化。
c
register int x = 10; // 建议将 x 存储在寄存器中
long
long
是整数类型的修饰符,用于声明长整数。
c
long l = 123456789L; // 声明一个长整数
short
short
是整数类型的修饰符,用于声明短整数。
c
short s = 123; // 声明一个短整数
signed
signed
是整数类型的修饰符,表示有符号整数。
c
signed int num = -10; // 声明一个有符号整数
unsigned
unsigned
是整数类型的修饰符,表示无符号整数。
c
unsigned int num = 10; // 声明一个无符号整数
总结
小伙伴们,C 语言的关键字就像是构建程序的魔法砖块,每一个都有着独特的功能和用途。通过这篇博客,我们从简单到复杂,逐一解析了 C 语言中的所有关键字。无论是初学者还是有一定经验的开发者,都能从中找到有用的知识点。
希望这篇博客能帮助你更好地理解 C 语言的关键字,让你在编程的道路上越走越远。如果你有任何问题或建议,欢迎在评论区留言,我们一起交流学习!