Grisson's .net

源码之前,了无秘密

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  8进制整数用0  开头;
16进制整数用0x开头

float只接受7位有效数字

\ddd  表示1到3位 8进制数所代表的字符
\xhh   表示1到2位16进制数所代表的字符
\n       换行
\t        横向跳格
\v       竖向跳格
\b       推格
\r        回车
\f        走纸换页
\\        表示反斜杠
\'        单引号

一个字符数据即可以以字符数据输出,也可以以整数形式输出。
main()
{
  
char c1,c2;
  c1
=97;
  c2
=98;
  printf(
"%c,%c",c1,c2);
}


有些系统中将char的最高位看做是符号位,所以在这样的系统中ASCII中的0-127在作为整数处理的时候看做是正数,而其他128-255间的字符被视为负数。
有些系统允许使用unsigned char型变量

C语言中规定,每个字符串的结尾处要加一个“字符串结束标志”--'\0'.其ASCII码为0。表示空操作符,不会引起任何控制动作,也不是一个可显示的字符。但是对于一个字符串"China"他实际有6个字符,而不是5个。

初始化
int a,b,c=5; 实际上只初始化了一个c
int a=b=c=5;  是错误的,应该写成  int a=5,b=5,c=5;
因为初始化不是在编译时完成的,而是在运行时完成的。

运算
整型,实型和字符型间可以混合运算
%要求其两侧的均为整型量
(int)(x+y)和(int)x+y是有区别的。
++和--的结合方向是"自右至左"的。对于-i++  如果将其看成是(-i)++ 是错误的因为表达式是不能++的,按照自右至左的方式将其看成是-(i++)才对。
假设i=3;对于 (i++)+(i++)+(i++) 的结果是9,最后i=6
                   对于 (++i)+(++i)+(++i) 的结果是18,最后i=6  
x *= y+8  等价于  x = x*(y+8)

赋值运算
赋值运算是自右至左的,所以可以写成是a=b=c=5,他相当于a=(b=(c=5));

逗号运算符
x=(a=3*5,a*4)              最后的x=60,a=15
x=a=3*5,a*40              最后的x=15,    a=15
x=((a=3*5,a*4),a+5)    最后的x=20,a=15

posted on 2005-08-22 22:36  海盗  阅读(464)  评论(1编辑  收藏  举报