新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > C语言学习的一些陷阱

C语言学习的一些陷阱

作者:时间:2014-01-10来源:网络收藏
1、=和==的不同
在C语言中,符号==是作为,符号==是作为比较的。一般而言,比比较运算出现得更频繁,因此字符较少的符号=就被赋予了更常用的含义——赋值操作。赋值操作在平常更广泛被我们使用,这就导致了一个潜在的问题,程序员本意要做比较运算,却写成了


2、程序中的“/*”
当C编译器读入一个字符“/”之后又跟了一个字符“*”,那么编译器就必须做出判断:是将其作为两个分别的字符对待,还是合起来作为一个符号对待。不同的编译器对于“/*”会产生不同的影响。
例:要求写一个测试程序,无论是对允许嵌套注释的编译器,还是对不允许嵌套注释的编译器,该程序都能正常通过编译,但是这两种情况下程序执行的结果却不相同。
解:/*/*/0*/**/1这一行表达式,如果编译器允许嵌套注释的话,即可理解为:/* /* /0 */ * */ 1。两个/*和两个*/正好匹配,所以上式的值就是1.如果不允许嵌套注释的话,注释中的/*将被忽略。因此上面的表达式可以理解为:/* / */ 0* /* */ 1,他的值就是0*1。


3、字符和
用单引号引起的一个字符实际上表示一个整数,例如‘a’的含义和0141(八进制)或者97(十进制)严格一致。
用双引号一起的是,表示的是一个数组起始字符的指针,该数组末尾是以字符‘’结束的。
例:char *s=’/’是错误的。正确应该为char *s=”/”。

c语言相关文章:c语言教程




评论


相关推荐

技术专区

关闭