首页 > 代码库 > C语言关键字 (一)

C语言关键字 (一)

0.定义和声明的区别

1、什么是定义?

所谓的定义就是编译器创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名或对象名。这个名字一旦和这块内存匹配起来,他们就同生共死,不离不弃,并且这块内存的位置也不能被改变。一个变量或对象在一定的区域内只能被定义一次。

2、什么事声明?

声明就是告诉编译器,这个名字已经匹配到一块内存上了,声明可以出现多次。同时也告诉编译器,这个名字已被定义了,别的地方再也不能用它来作为变量名或对象名。

3、声明和定义的区别?

定义创建了对象别为这个对象分配了内存,声明没有分配内存。



1. 最宽宏大量的关键字 ----auto

auto: 在缺省情况下,编译器默认所有变量都是auto的。

2. 最快的关键字 ---- registr

register: 这个关键字请求编译器尽可能地将变量存储在CPU内部寄存器中,而不是通过内存寻址访问以提高效率。注意 是尽可能,不是绝对。
注意: 1、register变量必须是能被CPU寄存器接受的类型,这意味着 register 变量必须是一个单个的值,并且其长度应小于或等于整型的长度。
 2、不能用取址符"&"来获取 register变量的地址。

3. 最名不副实的关键字 ---- static

1、修饰变量

1> 静态全局变量
作用域仅限于变量被定义的文件中,其他文件即使使用 extern 声明也没法使用它。
准确的说:作用域是从定义之处开始,到文件结尾处结束,在定义之处前面的代码也不能使用它,想要使用就在前面再加 extern ***
2> 静态局部变量
在函数体内定义的,就只能在这个函数里用,同一个文档中其他函数也无法使用。
由于被 static 修饰的变量总是存在内存的静态区,所以即使这个函数运行结束,这个静态变量的值也不会被销毁,函数下次使用时仍然能用到这个值

2、修饰函数

作用: 函数前加 static 使得函数称为静态函数。但此处 "static" 的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。
好处: 不同的人编写不同的函数时,不用担心自己定义的函数是否会与其他文件中的函数同名。

4. 基本数据类型 ---- short, int, long, char, float, double

1、变量的命名规则
***


5. 最冤枉的关键字 ---- sizeof

1、sizeof 是关键字不是函数。
2、sizeof 在计算变量所占空间大小时,括号可以省略,而计算类型 大小时不能省略。

6. signed, unsigned 关键字

基本数据类型的自高位用来存储符号位: 最高位如果是1,表明这个数是负数,其值为除最高位以外的剩余位的值添上"-"
如果最高位是 0 ,表明这个数是正数,其值为除最高位以外的剩余位的值。

7. if,else 组合

1、else 到底与哪个is匹配?

else 始终与同一括号内最贱的末匹配的if语句结合。
程序中的分界符 "{" 和 "}" 对齐。

2、if语句后面的分号

if 语句后加分号 不会出现错误,但会与出现不同的结果,应注意。

3、使用 if 语句的其他质疑事项

1> 先处理正常情况,再处理异常情况。
2> 确保 if 和 else 子句没有弄反。

8. switch, case 组合

使用 switch,case 组合可以提高效率。
1、每个 case 语句的结尾绝对不要忘记了加 break; ,否则将导致多个分支重叠。
2、最后必须使用 default 分支,即使程序不要要也应使用: default : break;


9. do, while, for 关键字

1、3种循环

1> while 循环
while(1) 表示死循环
也可以写成: while(true), while(1 == 1), while((bool)1)等
先判断 while 后面括号里的值,如果为真则执行其后面的代码,否则不执行。
2> do - while循环
先执行 do 后面的代码,然后再判断 while 后括号里的值
如果为真,循环开始; 否则,循环不开始。
3> for 循环
for 循环可以很容易地控制次数,很多用于事先知道循环次数的情况下。

2、break 与 continue 的区别

break: 表示终止本层循环。
continue: 表示终止本次循环。当执行到 continue时,本轮循环终止,进入下一轮循环。

3、循环语句的注意点

1> 在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层次数。
2> 建议 for 语句的循环控制变量的取值采用"半开半闭区间"写法,更直观。
3> 循环要尽可能段,要使代码清晰,一目了然。
4> 把循环嵌套控制在 3层以内。


C语言关键字 (一)