C语言解惑

最新书摘:
  • 42
    2013-01-19
    规则 1:只要一条宏定义于江湖里包含有操作符,就应该用括号把它括起来。规则 2:宏定义越紧凑越好;表达式比语句好,单条语句比多条语句好。规则 3:在宏定义里一定要注意避免使用会导致二义性或副作用的C语言元素。规则 3A:在宏定义里避免使用有副作用的表达式。
  • 42
    2013-01-11
    一个数组的地址和这个数组中第一个元素的地址是有区别的:这两种地址的类型是不同的,这种区别主要体现在对地址进行算术运算时的递增量/递减量方面。
  • 42
    2013-01-11
    “[]”最常见的用途是给出数组的下标,但“[]”本身其实是一个通用的下标操作符。在C语言里x[i]被定义为“ *( x + i )”,其中x是一个地址,而i是一个整数递增量。按照C语言中的地址运算规则,整数i的值等于“sizeof(x的基类型)”(现在应该明白为什么数组的下标是从0开始了吧:数组的名字其实是指向数组中第一个元素的指针,下标则是从该数组中的第一个元素算起的偏移量.第一个元素的偏移量是0)
  • 42
    2013-01-11
    为什么变量i的储存类型没有用保留关键字“extern”明确的作出声明呢?因为根据C语音里的有关规定,如果没有明确地作出声明,在第0级语句块层次里定义的变量的储存类型都将是extern。给某个变量加上一个extern标记并非在定义这个变量,而是在想编译器表明这个变量是在第0级u影巨款意外的其他地方定义的
  • 42
    2013-01-11
    对C程序里额“do......while”结构进行等效替换往往也可以改善程序代码的可读性。在“do...while”和while语句都可以使用时,总是首选
  • 42
    2013-01-11
    continue语句通常可以通过改变测试条件来实现,而这种改变有时会显著改善程序代码的可读性。
  • 42
    2013-01-11
    按照C语言的有关规则,else子句将被归入离他最近且能够接受它的那条if语句。
  • 42
    2013-01-11
    在进行算术运算的时候,最好避免混合使用不同类型的操作数。如果你必须那样做,就应该小心地使用类型转换操作符对有关的操作数明确地进行类型转换。
  • 42
    2013-01-11
    在C语言的某些版本里,带符号整数的向右移位操作会把符号位复制到因为移位而空出来的最高位,操作结果的符号位不发生变化——符合人们的语气。但要注意:这取决于所使用的C语言编译器。
  • 42
    2013-01-11
    按照C语言里的有关规则,在按从左到右的顺序对一个逻辑表达式求值的时候,只要知道了它的实际结果,就不会再对其余部分求值。
  • 42
    2013-01-10
    为避免产生二义性,如果一个字符串能过解释为多个操作符,C语言编译器将按照“构成操作符的字符个数越多越好”的原则来作出选择。
  • 42
    2013-01-10
    在复杂的表达式里,使用括号有助于读者搞清楚操作符和操作数之间的关联关系。