学习C语言也有几年的时间了,可能很多人跟我一样,都不知道C语言有多少个关键字,具体用法是怎么用都不是很了解或知道一点。
今天总结发现C语言关键字竟然达32个,下面就娓娓道来,由于写的比较仓促,难免存在错误!还请各位见谅!
C语言标准定义的32个关键字
auto | 声明自动变量,缺省时编译器一般默认为auto |
int | 声明整理变量 |
double | 声明双精度变量 |
long | 声明长整型变量 |
char | 声明字符型变量 |
float | 声明单精度浮点变量 |
short | 声明短整型变量 |
signed | 声明有符号类型变量 |
unsigned | 声明无符号类型变量 |
struct | 声明结构体变量 |
union | 声明联合数据类型 |
enum | 声明枚举类型 |
static | 声明静态变量 |
switch | 用于开关语句 |
case | 开关语句分支 |
default | 开关语句的其它分支 |
break | 跳出当前循环 |
register | 声明寄存器变量 |
const | 声明只读变量 |
volatile | 说明变量在程序执行中可被隐含地改变 |
typedef | 用以给数据类型取别名 |
extern | 声明变量是在其他文件中声明(也可看作引用变量) |
return | 子程序返回语句(可以带参数,也可以不带参数) |
void | 声明函数无返回值或无参数、声明空类型指针 |
continue | 结束当前循环,开始下一轮循环 |
do | 循环语句的循环条件 |
while | 循环语句的循环条件 |
if | 条件语句 |
else | 条件语句否定分支 |
for | 一种循环语句(可意会不可言传) |
goto | 无条件跳转语句 |
sizeof | 计算对象所占内存空间大小 |
下面挑选一些比较重要,容易将用法和概念混淆的关键字进行总结,以下内容是本人查找资料进行整理的。
一、Const
const从字面是恒定不变的意思,也翻译成常量和常数,可能正因为这一点,很多人都认为被const修饰的值是常量,这不精确,精确来说应该是只读变量,其值在编译时不能被使用。
1、Const作用
(1)可以定义定义const常量:const int MAX = 100;
(2)便于进行类型检查:const常量有数据类型,而宏常量没有数据类型,
(3)可以保护被修饰的东西:防止意外的修改,增强程序的健壮性。
(4)可以很方便的进行参数的调整:同宏定义一样,可以做到不变则已,一变都变。
(5)提高了效率:编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中。
示例程序:
#define M 3 //宏常量
const int N = 5; //此时并未将N放入内存中
.......
int i = N; //此时为N分配内存,以后不再分配
int I = M; //预编译期间进行宏替换,分配内存
int j = N; //没有内存分配
int J = M; //再进行宏替换,又一次分配内存
2、Const的变量和指针使用
(1)定义常量:const修饰类型的变量value是不可变的,以下两种定义形式在本质上是一样的。
int const ValueName = value;
const int ValueName = value;
(2)指针使用const
a. 指针本身是常量不可变
char* const pContent;
b. 指针所指向的内容是常量不可变
char const* pContent;
c. 两者都不可变
const char* const pContent;
d. 区别方法
在*中间画一条线,如const在*左边,则const修饰指向的变量,如cosnt在*右边,const修饰指针本身。
3、函数中使用Const
(1)const修饰函数参数
a. 传递过来的参数在函数内不可变(无意义,因为Var本身就是形参)
void function(const int Var);
b. 参数指针所指内容为常量不可变
void function(const char* Var);
c. 参数指针本身不可变(无意义,因为char * Var也是形参)
void function(char* const Var);
d. 参数为引用,为了增加效率同时防止修改,参数不可变--C++特性
void function(const Class & Var);
(2)const修饰函数返回值
const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。
a. const int fun1() ; //这个其实无意义,因为参数返回本身就是赋值
b. const int * fun2(); //调用时使用const int *pValue = fun2();
//我们可以把fun2()看成一个变量,即指针内容不可变
c. int * const fun3(); //调用时使用int* const pValue = fun3();
//我们可以把fun3()看成一个变量,即指针本身不可变
后续继续更新。。。。
版权声明:有不正确的地方,还望各位指正指导,Thanks!
原文地址:http://blog.csdn.net/a544258023/article/details/48013757