关于C语言学习的一些陷阱

来源:本站
导读:目前正在解读《关于C语言学习的一些陷阱》的相关信息,《关于C语言学习的一些陷阱》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《关于C语言学习的一些陷阱》的详细说明。
简介:本文主要介绍了关于C语言学习的一些陷阱,如:1、=和==的不同 2、程序中的“/*”

1、=和==的不同

在C语言中,符号==是作为赋值运算,符号==是作为比较的。一般而言,赋值运算比比较运算出现得更频繁,因此字符较少的符号=就被赋予了更常用的含义——赋值操作。赋值操作在平常更广泛被我们使用,这就导致了一个潜在的问题,程序员本意要做比较运算,却写成了赋值运算。

2、程序中的“/*”

当C编译器读入一个字符“/”之后又跟了一个字符“*”,那么编译器就必须做出判断:是将其作为两个分别的字符对待,还是合起来作为一个符号对待。不同的编译器对于“/*”会产生不同的影响。

例:要求写一个测试程序,无论是对允许嵌套注释的编译器,还是对不允许嵌套注释的编译器,该程序都能正常通过编译,但是这两种情况下程序执行的结果却不相同。

解:/*/*/0*/**/1这一行表达式,如果编译器允许嵌套注释的话,即可理解为:/* /* /0 */ * */ 1。两个/*和两个*/正好匹配,所以上式的值就是1.如果不允许嵌套注释的话,注释中的/*将被忽略。因此上面的表达式可以理解为:/* / */ 0* /* */ 1,他的值就是0*1。

3、字符和字符串

用单引号引起的一个字符实际上表示一个整数,例如‘a’的含义和0141(八进制)或者97(十进制)严格一致。

用双引号一起的是字符串,表示的是一个数组起始字符的指针,该数组末尾是以字符‘’结束的。

例:char *s=’/’是错误的。正确应该为char *s=”/”。

提醒:《关于C语言学习的一些陷阱》最后刷新时间 2024-03-14 00:57:47,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《关于C语言学习的一些陷阱》该内容的真实性请自行鉴别。