C语言特别摘要

  在兼有值与赋值两种功能的表达式中,赋值结合次序是由右至左。上面的语句等同于  n1 = (nw = (nc = 0));

int nl, nw, nc;

nl = nw = nc = 0;

  运算符||代表OR(或逻辑),运算符&&代表AND(逻辑与),&&比||高个优先级

   统计数字0~9的个数

int c;

while ((c = getchar()) != EOF)
       if (c >= '0' && c <= '9')
             ++ndigit[c' - 0'];

  外部变量可以在全局范围内访问,因此函数间可以通过外部变量交换数据,而不必使用参数。

  再者,外部变量在程序执行期间一直存在,而不是在函数调用时产生、在函数执行完毕时消失。 即使在对外部变量赋值的函数返回后,这些变量仍将保持原来的值不变。

 

  类型限定符signed与unsigned可用于限定char类型或任何整型。不带限定符的char类型对象是否带符号则取决于具体机器,但可打印字符总是正值。  

  long类型的常量以字母L结尾,如123456789L、1234.3456L。 无符号常量以字母u或者U结尾。后缀f或F表示float类型,没有后缀的浮点数常量为double类型。

  如果一个整数太大以至于无法用int类型表示,也将被当作long类型处理。 

 

  标准头文件<string.h>中声明了strlen和其它的字符串函数。 在不显示初始化时,自动变量、寄存器变量的值为未定义值(即无效值),外部变量和静态变量自动初始化为0。

     <ctype.h> 定义了一组与字符集无关的测试和转换函数。例如:tolower(c) 函数将c转换为小写形式(如果c代写形式的话。

 

  对于数组而言,const限定符指定数组所有元素的值都不能被修改;

  const限定符也可以配合数组参数使用,它表明函数不能取决于数组元素的值:

  如果试图修改const限定符的值,其结果取决于具体的实现

         int strlen(const cahr[]) ; 

 

  为了保证程序的可移植性,如果要在char类型的变量中存储非字符数据,最好指定 signed 或 unsigned 限定符。

 

  关于数据类型的转换

  char 与 short 类型的操作数转换为 int 类型,float类型的操作数不会自动转换为 double 类型

  可以把一个较长的宏定义分成若干行,只需要在待续的行末尾加上一个反斜杠符\ 。

posted @ 2011-03-05 22:05  RyanBell  阅读(694)  评论(0编辑  收藏  举报