C语言陷阱与缺陷 笔记1

用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。 用双引号引起的字符串,代表的是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制值为0的字符'\0'初始化。 if(flags & FLAG) 是 if(flags & FLAG != 0 ) 的意思,但 if (flags & FLAG != 0) 是错误的。因为!=运算符的优先级高于&运算符。 r是一个8位整数,且r的低四位与low各位上的数一致,而r的高四位与hi的各位上的数字一致,hi和low是2个整数,值介于0到15...

C语言笔记 数组 指针

声明相当与普通的声明:所说明的并非自身,而是描述其他地方创建的对象。 定义相当于特殊的声明:它为对象分配内存。 定义指针时,编译器并不为指针所指的对象分配空间,只是分配指针本身的空间,除非在定义的同时赋值给指针一个字符串常量,进行初始化,并只有对字符串常量才能如此,并且初始化指针时所创建的字符串被定义为只读,无法修改这个字符串的值。 数组:声明:extern:如extern char a[]:不可以改写成指针的形式。 数组:声明:定义:如char a[10]:不可以改写成指针形式 数组:函数参数:如fun(char a[]):可选择数组或者指针的形式 数组:在表达式中使用:如...
C语言笔记 | 2011-03-20 22:58 | 阅读 1331 次 | 评论 4 条
浏览10575次