1.要从逻辑上删除一段C代码,更好的办法时使用#if指令。
#if 0
statements
#endif
使用/* */虽好,但是当某段代码之中如果原来就有注释存在,这种方法就不能奏效。
2.在C语言中,数组参数是以引用的形式进行传递的,也就是传址调用,而标量和常量是按值传递的。在函数中对标量参数的任何修改都会在函数返回时丢失。
所有传递给函数的参数都是按值传递的。
3.C语言并不存在“string”数据类型,但是在整个语言中,存在一项约定:字符串就是一串以NUL(一个NUL字节是指字节模式全为0的字节,类似‘\0’这样的字符常量)字节结尾的字符。NUL作为字符串终止符,它本身并不被看做字符串的一部分。
4.标准并没有硬性规定C编译器对数组下标有效性检查,而且绝大多数C编译器确实也不进行检查。
5.一个变量ch被申明为整型,而实际上却被用来读取字符。这是因为EOF是一个整型值,它的位数比字符类型要多。把ch申明为整型值能防止从输入读取的字符意外地被解释为EOF。
6.字符串通常存储在字符数组中,这也是C语言没有显式的字符串类型的原因。NUL字符串不是一个可打印的字符,这是它被选择为字符串的终止符的原因。即使是空字符串(“”),依然存在作为终止符的NUL字节。你可以把字符串常量赋值给一个“指向字符的指针”,但是,你不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。