C的关键字
C语言的关键字共预留了32个,是在C语言标准中定义的,具有特殊含义和功能。
auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while
一、 关键字在C语言中的作用
语法规则:关键字规定了C语言的基本语法结构,例如if、else、for、while等关键字定义了条件判断和循环的语法形式。程序员必须按照关键字的语法规则编写代码,以确保程序的正确性。
标识符限制:关键字具有特殊含义,不能被用作标识符(变量名、函数名等)。这样可以避免使用关键字作为标识符引发的语法错误或歧义。
控制流程:C语言的关键字定义了程序的控制流程,例如break、continue、return等关键字用于控制循环和函数执行的流程。通过使用这些关键字,程序员可以灵活地控制程序的执行路径和返回值。
数据类型:C语言的关键字定义了各种基本数据类型,例如int、float、char等。这些关键字表示不同类型的数据,程序员可以使用它们定义变量,使得程序能够正确地存储和处理不同类型的数据。
存储类别:C语言的关键字定义了不同的存储类别,例如auto、static、extern等。通过使用这些关键字,程序员可以控制变量的生命周期、作用域和存储方式。
函数声明和定义:C语言的关键字定义了函数的声明和定义形式,例如void、int、char等关键字用于指定函数的返回类型。使用这些关键字可以明确函数的功能和参数的类型,提高程序的可读性和可维护性。
二、各个关键字简单解析
下面是C语言中各个关键字的作用及简单实例:
1、auto:声明自动变量,这些变量在函数内部定义并在函数结束时销毁,一般省略不写。
void fun() {
auto int x; // 声明一个自动变量x
x = 666;
}
2、break:终止当前循环或switch语句。
for (int i = 0; i < 100; i++) {
if (i == 50) {
break; // 当i等于50时跳出循环
}
}//循环还有while以及do......while
3、case:在switch语句中匹配常量表达式,并执行相应的代码块。
4、char:表示字符类型的数据。
char letter = 'A';
printf("%c", letter); // 输出A
5、const:定义常变量,其值不能被修改。
const int MAX_NUM = 100; // 定义一个常量MAX_NUM
7、continue:跳过当前循环中剩余的代码,并开始下一次循环迭代。
for (int i = 0; i < 5; i++) {
if (i == 3) {
continue; // 当i等于3时跳过本次循环
}
printf("%d ", i); // 输出0 1 2 4
}
8、default:用于switch语句中的默认情况。
9、do:执行循环体,并在循环条件为真时重复执行。
int i = 0;
do {
printf("%d ", i);
i++;
} while (i < 5); // 输出0 1 2 3 4
10、double:表示双精度浮点数类型的数据。
double pi = 3.14159;
printf("%lf", pi); // 输出3.141590
11、else:在if语句条件不满足时执行的代码块、与if搭配使用
12、enum:定义枚举类型,将一组相关的常量赋予一个标识符,并且默认按照顺序赋值。
enum Weekday {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY};
enum Weekday today = MONDAY;
13、extern:声明在其他文件中定义的全局变量或函数。
extern int num; // 声明在其他文件中定义的全局变量num
extern void func(); // 声明在其他文件中定义的函数func
14、float:表示单精度浮点数类型的数据。
float num = 3.14;
printf("%f", num); // 输出3.140000
15、for:用于循环执行一段代码,包含初始化、条件判断和迭代表达式。
16、goto:将程序控制转移到指定标签处。
goto label;
printf("Hello"); // 不会被执行
label:
printf("World"); // 输出World
17、if:根据条件判断是否执行特定的代码块。
16、int:表示整数类型的数据。
18、long:表示长整型数据。
19、register:将变量存储在寄存器中,以便快速访问。
register int x = 5; // 声明一个寄存器变量x
20、return:从函数中返回值。
21、short:表示短整型数据。
22、signed:表示带符号的整数类型,一般省略不写,正常定义就已经默认带有符号。
23、sizeof:返回数据类型或变量的大小(字节数)。
int size = sizeof(int);
printf("%d", size); // 输出4(在大多数系统上)
24、static:声明静态变量,其生命周期与程序的运行时间相同。
void count() {
static int num = 0; // 静态变量num在函数调用之间保留其值
num++;
printf("%d ", num);
}
int main() {
count(); // 输出1
count(); // 输出2
count(); // 输出3
return 0;
}
25、struct:定义结构体类型,用于组织多个不同类型的数据。
struct Point {
int x;
int y;
};
struct Point p1;
p1.x = 3;
p1.y = 5;
26、switch:根据表达式的值选择执行相应的代码块。
int day = 3;
switch (day) {
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday"); // 匹配到case 3
break;
default:
printf("Invalid day");
}
27、typedef:用来为已有的数据类型声明一个新的名称。
typedef int Number; // 将int类型命名为Number
Number num = 10; // 使用新名称Number
28、union:定义一种特殊的数据类型,可以存储不同类型的数据,但只能同时存储其中的一个成员。
union Data {
int i;
float f;
char str[20];
};
union Data d;
d.i = 10;
printf("%d", d.i); // 输出10
29、unsigned:表示无符号整数类型。
unsigned int x = 10;
printf("%u", x); // 输出10
30、void:表示无类型,用于函数返回值的声明或指针的类型转换。
void printMessage() {
printf("Hello, World!");
}
void* ptr; // 声明一个void指针
31、volatile:告诉编译器不要对变量进行优化,以确保每次访问该变量都从内存中读取。
volatile int sensorValue; // 使用volatile修饰传感器值变量
32、while:当条件为真时执行循环体,直到条件为假时停止。
int i = 0;
while (i < 5) {
printf("%d ", i);
i++;
} // 输出0 1 2 3 4
文章结束,有误之处,望大佬指正
续
下一篇笔记特殊难点字详解
结构体:我爱学C语言之结构体