编辑: xwl西瓜xym | 2019-04-26 |
第一章 关键字.
9 1.1,最宽恒大量的关键字----auto.11 1.2,最快的关键字---- register.11 1.2.1,皇帝身边的小太监----寄存器.11 1.2.2,使用 register 修饰符的注意点.11 1.3,最名不符实的关键字----static.12 1.3.1,修饰变量.12 1.3.2,修饰函数.13 1.4,基本数据类型----short、int、long、char、float、double.13 1.4.1,数据类型与"模子"14 1.4.2,变量的命名规则.14 1.5,最冤枉的关键字----sizeof.18 1.5.1,常年被人误认为函数.18 1.5.2,sizeof(int)*p 表示什么意思?18 1.4,signed、unsigned 关键字.19 1.6,if、else 组合.20 1.6.1,bool 变量与"零值"进行比较.20 1.6.2, float 变量与"零值"进行比较.21 1.6.3,指针变量与"零值"进行比较.21 1.6.4,else 到底与哪个 if 配对呢?22 1.6.5,if 语句后面的分号.23 1.6.6,使用 if 语句的其他注意事项.24 1.7,switch、case 组合.24 1.7.1,不要拿青龙偃月刀去削苹果.24 1.7.2,case 关键字后面的值有什么要求吗?25 1.7.3,case 语句的排列顺序.25 1.7.4,使用 case 语句的其他注意事项.27 1.8,do、while、for 关键字.28 1.8.1,break 与continue 的区别.28 1.8.2,循环语句的注意点.29 1.9,goto 关键字.30 1.10,void 关键字.31 1.10.1,void a?31 1.10,return 关键字.34 1.11,const 关键字也许该被替换为 readolny.34 1.11.2,节省空间,避免不必要的内存分配,同时提高效率.35 1.12,最易变的关键字----volatile.36 1.13,最会带帽子的关键字----extern.37 1.14,struct 关键字.38 1.14.1,空结构体多大?38 1.14.2,柔性数组.39 1.14.3,struct 与class 的区别.40 1.15,union 关键字.40 1.15.1,大小端模式对 union 类型数据的影响.40 1.15.2,如何用程序确认当前系统的存储模式?41 1.16,enum 关键字.42 1.16.1, 枚举类型的使用方法.43 1.16.2,枚举与#define 宏的区别.43 1.17,伟大的缝纫师----typedef 关键字.44 1.17.1,关于马甲的笑话.44 1.17.2,历史的误会----也许应该是 typerename.44 1.17.3,typedef 与#define 的区别.45 1.17.4,#define a int[10]与typedef int a[10]46
第二章 符号.49 2.1,注释符号.50 2.1.1,几个似非而是的注释问题.50 2.1.2,y = x/*p.51 2.1.3,怎样才能写出出色的注释.51 2.1.3.1,安息吧,路德维希.凡.贝多芬.51 2.1.3.2,windows 大师们用注释讨论天气问题.51 2.1.3.3,出色注释的基本要求.52 2.2,接续符和转义符.53 2.3,单引号、双引号.54 2.4,逻辑运算符.54 2.5,位运算符.55 2.5.1,左移和右移.55 2.5.2,0x010)) { //打印出 i 和j的值. } 结果:i=1;
j=0. 不要惊讶.逻辑运算符||两边的条件只要有一个为真,其结果就为真;
只要有一个结果 为假,其结果就为假.if((++i>0)||(++j>0))语句中,先计算(++i>0),发现其结果为真,后面 的(++j>0)便不再计算.同样&&运算符也要注意这种情况.这是很容易出错的地方,希望读 者注意. 2.5,位运算符 C 语言中位运算包括下面几种: & 按位与 | 按位或 ^ 按位异或 ~ 取反 > 右移 前4种操作很简单, 一般不会出错. 但要注意按位运算符|和&与逻辑运算符||和&&完全 是两码事,别混淆了.其中按位异或操作可以实现不用第三个临时变量交换两个变量的值: a ^= b;
b ^= a;
a ^= b;
但并不推荐这么做,因为这样的代码读起来很费劲. 2.5.1,左移和右移 下面讨论一下左移和右移: 左移运算符">"右边的数指定移动的位数.但注意:对于有符号数,在右移时,符号位将随同 移动.当为正数时, 最高位补 0;