C语言——关键字

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语言之结构体

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值