用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
用双引号引起的字符串,代表的是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制值为0的字符'\0'初始化。
if(flags & FLAG) 是 if(flags & FLAG != 0 ) 的意思,但 if (flags & FLAG != 0) 是错误的。因为!=运算符的优先级高于&运算符。
r是一个8位整数,且r的低四位与low各位上的数一致,而r的高四位与hi的各位上的数字一致,hi和low是2个整数,值介于0到15...
声明相当与普通的声明:所说明的并非自身,而是描述其他地方创建的对象。
定义相当于特殊的声明:它为对象分配内存。
定义指针时,编译器并不为指针所指的对象分配空间,只是分配指针本身的空间,除非在定义的同时赋值给指针一个字符串常量,进行初始化,并只有对字符串常量才能如此,并且初始化指针时所创建的字符串被定义为只读,无法修改这个字符串的值。
数组:声明:extern:如extern char a[]:不可以改写成指针的形式。
数组:声明:定义:如char a[10]:不可以改写成指针形式
数组:函数参数:如fun(char a[]):可选择数组或者指针的形式
数组:在表达式中使用:如...