首页 > 代码库 > 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语言关键字 (一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。