C/C++语言全部关键字解释C语言32个关键字解释C语言的关键字共有32个,根据关键字的作用,可分其为数据类型 关键字、控制语句关键字、存储类型关键字和其它关键字四类数据类型关键字(12个):(1) char :声明字符型变量或函数(2) double :声明双精度变量或函数(3) enum :声明枚举类型(4) float:声明浮点型变量或函数(5) int:声明整型变量或函数(6) long :声明长整型变量或函数(7) short :声明短整型变量或函数(8) signed:声明有符号类型变量或函数(9) struct:声明结构体变量或函数(10) union:声明联合数据类型(11) unsigned:声明无符号类型变量或函数(12) void :声明函数无返回值或无参数,声明无类型指针(基本上 就这三个作用)(2)控制语句关键字(12个):A循环语句(1) for: ー种循环语句(可意会不可言传)(2) do :循环语句的循环体(3) while :循环语句的循环条件(4) break:跳出当前循环(5) continue:结束当前循环,开始下ー轮循环B条件语句(l)if:条件语句(2)else :条件语句否定分支(与if连用)(3) goto:无条件跳转语句C开关语句(1) switch :用于开关语句(2) case:开关语句分支(3)default:开关语句中的“其他”分支D return :子程序返回语句(可以带参数,也看不带参数)3存储类型关键字(4个)(Dauto :声明自动变量一般不使用(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)(3)register:声明积存器变量(4) static :声明静态变量4其它关键字(4个):(1)const :声明只读变量(2)sizeof:计算数据类型长度(3)typedef :用以给数据类型取别名(当然还有其他作用(4)volatile:说明变量在程序执行中可被隐含地改变char 8 int 16long 32float 32double 64这是占的位数bit1 Byte=8 bit除以8就是字节数byteC语言32个关键字解释([color=Teal]C语言小知识:[/color])auto !声明自动变量一般不使用double :声明双精度变量或函数int:声明整型变量或函数struct:声明结构体变量或函数break:跳出当前循环else :条件语句否定分支(与if连用)long :声明长整型变量或函数switch :用于开关语句case:开关语句分支enum :声明枚举类型register:声明积存器变量typedef:用以给数据类型取别名(当然还有其他作用)char :声明字符型变量或函数extern:声明变量是在其他文件正声明(也可以看做是引用变量)return :子程序返回语句(可以带参数,也看不带参数)union:声明联合数据类型const :声明只读变量float:声明浮点型变量或函数short :声明短整型变量或函数unsigned:声明无符号类型变量或函数continue:结束当前循环,开始下ー轮循环for: ー种循环语句(可意会不可言传)signed:生命有符号类型变量或函数void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)default:开关语句中的“其他”分支goto:无条件跳转语句sizeof:计算数据类型长度volatile:说明变量在程序执行中可被隐含地改变do :循环语句的循环体while :循环语句的循环条件static :声明静态变量if:条件语句C++全部关键字说明(l)auto这个这个关键字用于声明变量的生存期为自动,即将不在任 何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函 数中定义的变量视为局部变量。
这个关键字不怎么多写,因为所有的 变量默认就是auto的2)register这个关键字命令编译器尽可能的将变量存在CPU内部寄存器 中而不是通过内存寻址访问以提髙效率3)static常见的两种用途:1》统计函数被调用的次数;2>减少局部数组建立和赋值的开销.变量的建立和赋值是需要一定的 处理器开销的,特别是数组等含有较多元素的存储类型在ー些含有 较多的变量并且被经常调用的函数中,可以将一些数组声明为 static类型,以减少建立或者初始化这些变量的开销.详细说明:IX变量会被放在程序的全局存储区中,这样可以在下一次调用的时 候还可以保持原来的赋值这一点是它与堆栈变量和堆变量的区别 2X变量用static告知编译器 自己仅仅在变量的作用范围内可见 这一点是它与全局变量的区别3>当static用来修饰全局变量时,它就改变了全局变量的作用域,使其不能被别的程序extern,限制在了当前文件里,但是没有改变其存放位置,还是在全局静态储存区使用注意:1>若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态 全局变量,以降低模块间的耦合度;2》若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静 态局部变量,以降低模块间的耦合度;3>设计和使用访问动态全局变量、静态全局变量、静态局部变量的函 数时,需要考虑重入问题(只要输入数据相同就应产生相同的输出) (4) const 被const修饰的东西都受到强制保护,可以预防意外的 变动,能提高程序的健壮性。
它可以修饰函数的参数、返回值,甚至 函数的定义体作用:1》修饰输入参数a.对于非内部数据类型的输入参数,应该将“值传递”的方式改为 “const引用传递”,目的是提高效率例如将void Func (A a)改为 void Func (const A &a)〇b.对于内部数据类型的输入参数,不要将“值传递”的方式改为 “const引用传递”否则既达不到提高效率的目的,又降低了函数 的可理解性例如void Func(int x)不应该改为void Func (const int &x)〇2>用const修饰函数的返回值a.如果给以“指针传递”方式的函数返回值加const修饰 那么函数 返回值(即指针)的内容不能被修改,该返回值只能被赋给加const 修饰的同类型指针如对于:const char * GetString(void);如下语句将出现编译错误:char *str = GetStringO ; //cannot convert from J const char *'to ' char *';正确的用法是:const char *str = GetStringO ;b.如果函数返回值采用“值传递方式”,由于函数会把返回值复制到 外部临时的存储单元中,加const修饰没有任何价值。
如不要把函 数 int Getlnt (void)写成 const int Getlnt (void) 〇3>const成员函数的声明中,const关键字只能放在函数声明的尾部, 表示该类成员不修改对象.说明:const type m; 〃修饰m为不可改变示例:typedef char * pStr; 〃新的类型 pStr;char string[41 = "abc ;const char *pl = string;pl++; 〃正确,上边修饰的是・pl, pl可变 const pStr p2 = string; p2++; 〃错误,上边修饰的是p2, p2不可变,*p2可变 同理,const修饰指针时用此原则判断就不会混淆了const int *value: 〃*value 不可变,value "可 变int* const value; 〃value 不可变,*value 可变const (int *) value; //(int *)是ー种 type, value 不可变,*value 可变〃逻辑上这样理解,编译不能通过,需要tydef int* NewType; const int* const value;〃*value, value 都イ、可变(5)volatile表明某个变量的值可能在外部被改变,优化器在用到这个变 量时必须每次都小心地重新读取这个变量的值而不是使用保存在寄 存器里的备份。
它可以适用于基础类型如:int, char, long 也适用于C的结构和C++的类当对结构或者类对象使用volatile修 饰的时候,结构或者类的所有成员都会被视为volatile.该关键字在多线程环境下经常使用,因为在编写多线程的程序时,同 ー个变量可能被多个线程修改,而程序通过该变量同步各个线程 简单示例:DWORD stdcall threadFunc(LPVOID signal) int* intSignal=reinterpret_cast(signal);*intSignal=2;while (*intSignal!=1)sleep(1000);return 0;)该线程启动时将intSignal置为2然后循环等待直到intSignal为 1时退出显然intSignal的值必须在外部被改变,否则该线程不会 退出但是实际运行的时候该线程却不会退出,即使在外部将它的值 改为1,看一下对应的伪汇编代码就明白了: mov ax, signallabel:if(ax!=l)goto label对于C编译器来说,它并不知道这个值会被其他线程修改自然就把 它cache在寄存器里面C编译器是没有线程概念的,这时候就需要 用到volatile。
volatile的本意是指:这个值可能会在当前线程外 部被改变也就是说,我们要在threadFunc中的intSignal前面加 上volatile关键字,这时候编译器知道该变量的值会在外部改变, 因此每次访问该变量时会重新读取,所作的循环变为如下面伪码所 示:label: mov ax, signal if(ax!=l)goto label注意:ー个参数既可以是const同时是volatile,是 volatile因为它可能被意想不到地改变它是const因为程序不应 该试图去修改它6)extern extern意为"外来的” • • ,它的作用在于告诉编译 器:有这个变量,它可能不存在当前的文件中,但它肯定要存在于エ 程中的某ー个源文件中或者ー个D11的输出中C++关键字(不同于 c的关键字)1 . C++包含的类型:bool true false2 .类型声明所用到的关键字classpublicprivateprotectedfriendmutableexplicitthis3 .虚拟与多态以及rtti virtual typeidOstatic_cast<>()dynamic_cast<>()reinterpret_cast<>()4 .泛型编程相关templateOtypename5 .全局函数和成员函数相关inline6 .堆管理newdelete7 .异常处理try{}catch () {}throw ()[编辑本段]电脑语言用语关键字是用来标识文件中各个记录的特定数据项目的值。
关键字是电脑语言里事先定义的,有特别意义的标识符。