C语言中的32个关键字你知道多少个呢?根据关键字的作用分为四类:数据类型关键字、控制语句关键字、存储类型关键字和其它关键字。
1.1 基本数据类型
- int:用于声明整数类型的变量。
- char:用于声明字符类型的变量。
- float:用于声明单精度浮点数类型的变量。
- double:用于声明双精度浮点数类型的变量。
1.2 修饰符
这些修饰符用于改变基本数据类型的存储大小和范围。
1. short:用于声明短整数类型的变量,通常比int短。
2. long:用于声明长整数类型的变量,通常比int长。
3. signed:用于声明有符号数类型的变量(默认情况下,整数类型是有符号的)。
4. unsigned:用于声明无符号数类型的变量。
1.3 派生类型
这些关键字用于声明复杂类型的变量。
- struct:用于声明结构体类型。
- union:用于声明共用体类型。
- enum:用于声明枚举类型。
1.4 类型定义
- typedef:用于给现有类型起别名。
- void:用于声明无类型,常用于函数返回类型。
1.5 类型限定符
这些限定符用于改变变量的存储和优化方式。
- const:用于声明常量,表示变量的值不能被修改。
- volatile:用于声明易变变量,表示变量的值可能被程序之外的因素改变,编译器不会对其进行优化。
- restrict:用于指针声明,表示指针是唯一访问对象的方式,能够帮助编译器优化代码。
1.6 复合类型
- _Bool:用于声明布尔类型的变量。
- _Complex:用于声明复数类型的变量(C99)。
- _Imaginary:用于声明虚数类型的变量(C99)。
1.7 标准库类型
通过标准库中的头文件,可以引入更多的数据类型关键字,例如 stddef.h 中的 size_t, stdint.h 中的 int32_t 等。这些关键字构成了C语言的数据类型系统,允许程序员根据需要声明和定义各种变量和数据结构。
2.1 条件控制语句
if:用于条件判断。
if(condition){
//codetobeexecutedifconditionistrue
}
else:用于与if配合,处理条件为假的情况。
if(condition){
//codetobeexecutedifconditionistrue
}else{
//codetobeexecutedifconditionisfalse
}
else if:用于在if和else之间检查其他条件。
if(condition1){
//codetobeexecutedifcondition1istrue
}elseif(condition2){
//codetobeexecutedifcondition2istrue
}else{
//codetobeexecutedifbothconditionsarefalse
}
2.2 选择控制语句
switch:用于根据变量的值进行多分支选择。
switch (variable) {
case value1:
// code to be executed if variable == value1
break;
case value2:
// code to be executed if variable == value2
break;
// other cases
default:
// code to be executed if variable doesn't match any case}
case:用于定义switch语句中的分支。
default:用于定义switch语句中的默认分支。
2.3 循环控制语句
while:用于条件控制的循环,在每次循环前检查条件。
while(condition){//codetobeexecutedrepeatedlywhileconditionistrue
}
do...while:用于条件控制的循环,在每次循环后检查条件,保证循环体至少执行一次。
do{
//codetobeexecutedrepeatedly
}while(condition);
for(initialization;condition;increment){
//codetobeexecutedrepeatedlywhileconditionistrue
}
2.4跳转控制语句
break:用于退出当前的循环或switch语句。
break;
continue:用于跳过当前循环中的剩余代码,直接进入下一次循环。
continue;
return:用于从函数中返回。
returnvalue;
goto:用于无条件跳转到标号为label的语句。
gotolabel;
//othercode
label:
//codetobeexecutedafterthejump
2.5 其他控制语句
sizeof:用于获取变量或类型的大小(以字节为单位)。
sizeof(type);
assert:用于在调试时检查条件是否为真,条件为假时终止程序执行(需要包含assert.h头文件)。
assert(condition);
这些关键字帮助程序员控制程序的执行流程,实现条件判断、循环、跳转等功能。
auto:是局部变量的默认存储类。它表示变量具有自动存储持续时间,即变量在进入其作用域时被创建,在退出其作用域时被销毁。通常用于函数内部的局部变量,现代编译器可以省略此关键字。
autointx=10;//等同于intx=10;
register:建议编译器将变量存储在CPU寄存器中,而不是在内存中,从而提高访问速度。寄存器变量不能取地址(即不能使用&操作符)。
registerintcounter=0;
static:有三种主要用途:1.在函数内部:表示局部变量在函数调用之间保持其值,而不是每次调用时重新创建。
voidfunc(){
staticintcount=0;//count在第一次调用时被初始化,后续调用时保持其值
count++;
printf("%d\n",count);
}
2.在函数外部:表示变量在整个程序的生命周期内可见,但仅在定义它的文件内可见(即具有文件作用域)。
staticintglobalVar=100;//仅在定义它的文件内可见
3.在函数声明前:表示函数仅在定义它的文件内可见。
staticvoidhelperFunction(){
//仅在定义它的文件内可见
}
extern:用于声明在其他文件中定义的变量或函数,使得可以在当前文件中引用它们。它表示变量或函数的定义在其他地方(可能是其他文件),但可以在当前文件中使用。
externintglobalVar;//引用其他文件中定义的变量externvoidsomeFunction();//引用其他文件中定义的函数
_Thread_local:用于声明线程局部存储(TLS)变量,每个线程都有独立的实例。可以与static或extern结合使用。
_Thread_localintthreadVar=0;//每个线程都有独立的threadVar实例
这些存储类型关键字提供了灵活的方式来管理变量的存储、作用域和生命周期,从而优化程序性能和内存使用。
C语言中有34种运算符,涵盖了算术运算、关系运算、逻辑运算、位运算、赋值运算和其他特殊运算。以下是这些运算符的详细分类和用法:
-
C语言
+关注
关注
180文章
7579浏览量
135387 -
字符
+关注
关注
0文章
230浏览量
25139 -
数据类型
+关注
关注
0文章
236浏览量
13580
发布评论请先 登录
相关推荐
评论