首页 > 其他分享 >C语言关键字介绍

C语言关键字介绍

时间:2025-01-13 14:00:10浏览次数:3  
标签:变量 int 数据类型 介绍 C语言 关键字 用于 类型

• 关键字都有特殊的意义,是保留给C语⾔使⽤的
• 程序员⾃⼰在创建标识符的时候是不能和关键字重复
• 关键字也是不能⾃⼰创建的
C语⾔中有⼀批保留的名字的符号,⽐如: int 、 if 、 return ,这些符号被称为保留字或者关键

 C语言有多少个关键字?

 c语言中的关键字是不是不需要头文件?

C 语言共有 32 个关键字。
数据类型关键字(12 个)
char:声明字符型变量。
double:声明双精度浮点型变量。
enum:定义枚举类型。
float:声明单精度浮点型变量。
int:声明整型变量。
long:用于长整型变量声明。
short:声明短整型变量。
signed:修饰有符号整数类型。
struct:定义结构体类型。
union:定义联合体类型。
unsigned:修饰无符号整数类型。
void:用于函数无返回值或表示通用指针类型。
控制语句关键字(12 个)
break:跳出循环或switch语句。
case:switch语句中的分支标签。
continue:跳过本次循环剩余代码进入下一次循环。
default:switch语句中匹配失败时执行的分支。
do:用于do - while循环。
else:if语句条件不成立时执行的分支。
for:构成for循环。
goto:无条件跳转语句。
if:条件判断语句。
return:从函数返回值或结束函数。
switch:用于多分支选择结构。
while:构成while循环。
存储类型关键字(4 个)
auto:声明自动变量,是局部变量默认存储类型。
extern:声明外部变量或函数。
register:建议编译器将变量存储在寄存器。
static:修饰局部变量保持值或限制全局变量 / 函数作用域。
其他关键字(4 个)
const:定义常量。
sizeof:计算数据类型或变量占用字节数。
typedef:为数据类型定义新名称。
volatile:告诉编译器变量值可能在程序控制流外改变。

 32 个关键字的大概用法

数据类型关键字(12 个)

  • char:用于声明字符型变量,通常用来存储单个字符,例如char c = 'a';,这里定义了一个字符变量c并初始化为字符a
  • double:用于声明双精度浮点型变量,它能表示比float更精确的小数数值,如double pi = 3.1415926;
  • enum:用于定义枚举类型,枚举是一种用户自定义的数据类型,它允许定义一组命名的整数常量。
  • 例如:
    enum Weekday {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
    enum Weekday today = Monday;
  • float:声明单精度浮点型变量,用来存储带有小数部分的数值,像float height = 1.75f;(注意这里的f后缀表示单精度浮点数)。
  • int:声明整型变量,是最常用的数据类型之一,用于存储整数,例如int num = 10;
  • long:可以用于声明长整型变量,有long intlong long int两种形式。long int通常用于表示范围比int更大的整数,long long int能表示的范围则更大。例如long long bigNumber = 123456789012345LL;(这里的LL后缀用于明确表示这是一个long long int类型的常量)。
  • short:声明短整型变量,用于存储相对较小范围的整数,它占用的内存空间比int类型小,如short count = 5;
  • signed:用于修饰有符号整数类型,如signed int,表明变量可以存储正数、负数和零。在默认情况下,int等类型是有符号的,所以signed关键字有时候可以省略。
  • struct:用于定义结构体类型,结构体允许将不同类型的数据成员组合在一起,形成一个新的数据类型。例如:
    struct Student {
        char name[20];
        int age;
        float score;
    };
    struct Student stu;

  • union:定义联合体类型,联合体和结构体类似,但联合体的所有成员共享同一块内存空间,在某一时刻,联合体只能存储其中一个成员的值。例如:
  •  
    union Data {
        int i;
        float f;
        char c;
    };
    union Data data;

  • unsigned:用于修饰无符号整数类型,如unsigned int,这种类型的变量只能存储非负整数(0 和正数),其表示的正数范围是有符号类型的两倍。例如unsigned int positiveNum = 100U;U后缀表示无符号整数常量)。
  • void:主要有两种用途。一是用于函数返回值,表示函数不返回任何值;二是用于指针,表示通用指针类型。例如void function(void);声明了一个没有返回值且没有参数的函数。                                                                                                                                                             控制语句关键字(12 个)                                                                                                               
  • break:用于跳出循环(forwhiledo - while)或者跳出switch语句。例如在for循环中:
  • for (int i = 0; i < 10; i++) {
        if (i == 5) {
            break;
        }
        printf("%d ", i);
    }

    这个程序会在i等于 5 时跳出循环,只会输出 0 - 4。

  • case:用于switch语句中,是switch分支的标签。例如:
    int choice = 2;
    switch (choice) {
        case 1:
            printf("You selected option 1");
            break;
        case 2:
            printf("You selected option 2");
            break;
        default:
            printf("Invalid option");
            break;
    }

  • continue:用于循环语句(forwhiledo - while)中,它会跳过本次循环中剩余的代码,直接进入下一次循环。例如:
    for (int i = 0; i < 5; i++) {
        if (i == 2) {
            continue;
        }
        printf("%d ", i);
    }

    这个程序会输出 0、1、3、4,跳过了i = 2时的打印操作。

  • default:在switch语句中,用于定义当switch表达式的值与所有case标签的值都不匹配时执行的分支。
  • do:用于构成do - while循环,do - while循环的特点是先执行一次循环体,然后再判断循环条件是否成立。例如:
    int num = 0;
    do {
        printf("%d ", num);
        num++;
    } while (num < 5);

  • else:用于if语句中,表示当if条件不成立时执行的分支。也可以和if一起用于嵌套的条件判断。例如:
    int a = 10;
    if (a > 20) {
        printf("a is greater than 20");
    } else {
        printf("a is less than or equal to 20");
    }

  • for:用于构成for循环,for循环是一种非常灵活的循环结构,它有三个表达式:初始化表达式、条件表达式和更新表达式。例如:
    for (int i = 0; i < 10; i++) {
        printf("%d ", i);
    }

  • goto:是无条件跳转语句,不过它的使用会使程序的结构变得复杂且难以理解,容易导致错误,所以在实际编程中应该谨慎使用。例如:
    int main() {
        int i = 0;
        label:
        printf("%d ", i);
        i++;
        if (i < 5) {
            goto label;
        }
        return 0;
    }

  • if:用于条件判断,根据条件的真假来执行不同的代码块。可以单独使用,也可以嵌套使用。例如:
    int x = 5;
    if (x > 3) {
        printf("x is greater than 3");
    }

  • return:用于从函数返回一个值或者结束函数的执行。如果函数返回类型不是void,则必须使用return返回一个符合函数返回类型的值。例如:
    int add(int a, int b) {
        return a + b;
    }

  • switch:用于多分支选择结构,根据表达式的值跳转到相应的case标签处执行代码。
  • while:用于构成while循环,只要条件表达式为真,就会一直执行循环体。例如:
    int j = 0;
    while (j < 3) {
        printf("%d ", j);
        j++;
    }

    存储类型关键字(4 个)

  • auto:是 C 语言中局部变量的默认存储类型,用于声明自动变量,这些变量在进入函数或代码块时创建,在离开函数或代码块时销毁。例如:
    void func() {
        auto int localVariable = 10;
        // 函数结束后localVariable自动销毁
    }

  • extern:用于声明外部变量或函数,表示变量或函数的定义在其他文件中。这对于在多个源文件之间共享变量和函数非常有用。例如,在一个文件main.c中有:
    extern int globalVariable;
    int main() {
        globalVariable++;
        return 0;
    }

    在另一个文件other.c中有int globalVariable = 0;

  • register:用于建议编译器将变量存储在寄存器中,以提高访问速度。不过这只是一个建议,编译器会根据实际情况决定是否将变量存储在寄存器中。例如:
    register int fastVariable;

  • static:有两种主要用途。一是用于修饰局部变量,使局部变量在函数调用结束后仍然保留其值,下次调用函数时可以继续使用。二是用于修饰全局变量或函数,限制其作用域为当前文件,防止在其他文件中被访问。例如:
    void func() {
        static int staticVariable = 0;
        staticVariable++;
        printf("%d ", staticVariable);
    }

    其他关键字(4 个)

  • const:用于定义常量,被const修饰的变量的值在初始化后不能被修改。例如const int MAX_VALUE = 100;
  • sizeof:是一个运算符,用于计算数据类型或变量所占用的字节数。例如printf("%zu", sizeof(int));会输出int类型占用的字节数。
  • typedef:用于为现有数据类型定义一个新的类型名。例如typedef int MyInt;之后就可以使用MyInt来代替int声明变量,如MyInt num = 5;
  • volatile:用于告诉编译器,变量的值可能会在程序的控制流之外被改变,例如被硬件或者其他线程修改。这样编译器就不会对该变量进行某些优化。例如在嵌入式系统中,访问硬件寄存器时可能会用到。

  • c语言中的关键字到底需要头文件?

  • 1.大多数关键字不需要头文件
  • C 语言中的关键字是语言本身的一部分,它们是预定义的保留字,用于定义变量类型、控制程序流程等基本操作。例如,intiffor等关键字在编译器的词法分析阶段就被识别,不需要包含任何头文件来使用它们。
  • 2.部分关键字在特定用法下可能涉及头文件
  • sizeof关键字(从某种意义上涉及头文件)
  • sizeof是一个操作符,它用于计算数据类型或变量所占用的字节数。虽然它本身是关键字,但当用于一些复杂的数据类型(如结构体等)时,可能需要包含相应的头文件(struct.h)来定义这些数据类型。
  • 例如,如果有一个结构体定义在一个头文件struct.h中:
    // <struct.h>
    struct MyStruct {
        int a;
        char b;
    };

    在另一个 C 文件中使用sizeof来计算这个结构体的大小:

    #include<struct.h>
    int main() {
        struct MyStruct s;
        int size = sizeof(s);
        return 0;
    }

  • 3.这里就需要包含struct.h头文件来正确使用sizeoftypedef关键字(可能涉及头文件)

  • typedef用于为现有数据类型定义一个新的类型名。如果新定义的类型是基于其他自定义的数据类型(如结构体、枚举等),而这些数据类型是在其他头文件中定义的,那么就需要包含相应的头文件。
  • 例如,定义一个新的类型MyIntArray代表int数组:
  • 操作符计算结构体MyStruct的大小。
    typedef int MyIntArray[10];

  • 但如果是要定义一个基于其他头文件中定义的结构体的新类型,比如有一个头文件person.h定义了struct Person
    // <person.h>
    struct Person {
        char name[20];
        int age;
    };

  • 要在另一个文件中使用typedef基于struct Person定义新类型,就需要包含person.h
    #include<person.h>
    typedef struct Person MyPerson;

标签:变量,int,数据类型,介绍,C语言,关键字,用于,类型
From: https://blog.csdn.net/2501_90200491/article/details/145113515

相关文章

  • 2025年flask峨眉山景点介绍及旅游攻略推荐平台 程序+论文 可用于计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着旅游业的蓬勃发展,人们对旅游目的地的信息需求日益增长,尤其是针对知名旅游景点如峨眉山的详细介绍及实用旅游攻略。关于旅游景点介绍及......
  • C语言小作业——电话号码加密器
        请你设计一个电话号码程序:它可以接收用户输入的11位电话号码字符串(假设输入已经符合要求,因此不进行输入验证),并按照指定的加密规则对电话号码进行加密,然后输出加密后的虚拟号码。加密规则是:电话号码的前3位数字不变,从第4位开始,每一位数字的ASCII码值加上一个固定的......
  • C语言指针详解
    指针前言在这部分,需要大家花时间理解和练习用什么错误和缺失,也欢迎大家补充!!!1.内存和地址在现实生活中,对于一个任何一个地方都有对应的地址同样地,在计算机中我们把内存单元的编号也称为地址在C语言中我们称其为指针对于一个内存单元,其占一个字节,一个字节又是八个比......
  • 在工作中能让你最有成就感的是什么?并介绍下你最得意的作品吧
    在工作中,能让我最有成就感的事情是:通过前端技术的创新和优化,显著提升产品的用户体验,并因此获得用户、同事和上级的认可。每当我看到自己的工作成果能够切实地改善用户的生活或工作方式,我都会深感满足和自豪。至于我最得意的作品,那是一个我参与开发的复杂Web应用的前端部分。这个......
  • X11, Wayland, GNOME 和 Xorg 关系介绍
    X11定义与背景X11是一种网络透明的窗口系统协议,它提供了基本的图形用户界面(GUI)功能,如窗口管理、图形绘制和事件处理等。它是在Unix和类Unix系统(包括Linux)中广泛使用的图形显示系统。X11最初由麻省理工学院(MIT)开发,在1987年发布的X11版本是对之前XWindowSystem......
  • 说说一件或几件(介绍下除了工作外)你觉得能为你面试加分的事
    在前端开发的面试中,除了专业技能和经验,面试官也会关注候选人的综合素质和潜力。以下是一些除了工作外,可能为你面试加分的事情:个人技术博客或GitHub项目:拥有一个活跃的技术博客,定期分享前端开发的心得、技巧或者解决方案,这不仅能展示你对技术的深入理解和热情,也体现了你的学习......
  • 【机器学习】Kaggle实战Rossmann商店销售预测(项目背景、数据介绍/加载/合并、特征工程
    文章目录1、项目背景2、数据介绍3、数据加载3.1查看数据3.2空数据处理3.2.1训练数据3.2.2测试数据3.3.3商店数据处理3.3.4销售时间关系4、合并数据5、特征工程6、构建训练数据和测试数据7、数据属性间相关性系数8、提取模型训练的数据集9、构建模型9.1定义评价......
  • 比特c语言-创建技术博客
      创建技术博客一、C语言学习目标(一)基础语法掌握熟练掌握C语言的数据类型,包括整型、浮点型、字符型等,清楚不同数据类型的取值范围和使用场景。精通各种运算符,如算术运算符、关系运算符、逻辑运算符等,能够运用它们进行正确的表达式求值。理解并能灵活运用控制结构,像i......
  • 低代码系统-数据规则介绍(表单设计器)
            数据规则作为数据模型中的核心模块,在业务配置和流转过程中有着举足轻重的作用,有了数据规则,表单的操作可以得到限制和拓展。例如:请假时间不可能选到过去,当请假人在请假时应当限制时间范围。    当不同的人和不同的流程过程中,操作表单时,可以操作和看到......
  • c语言的基本类型及输入输出占位符
    基本类型c语言的基本类型:int【long、short、unsigned、signed(c90)】、char、float、double、_Bool【布尔值】、_complex、_Imaginary【复数和虚数】输入输出printf标志字符标志含义-转换的结果在字段内左对齐+有符号的转换结果总是以+或者-开始空格如果......