前言:
现时同学们对“c语言的单引号怎么打”大概比较关切,大家都需要了解一些“c语言的单引号怎么打”的相关文章。那么小编在网摘上汇集了一些有关“c语言的单引号怎么打””的相关资讯,希望兄弟们能喜欢,你们一起来学习一下吧!1. =不同于==
符号=赋值运算,符号==比较运算。如果程序员在无意中写错了,编译器会发出警告,有些不,没有警告却会让结果充满扑朔迷离。
例如1:检查a是否等于b
If(a=b)
Printf(“”);
实际代码的操作却是将b的值赋给a,然后检查a的值是否为零。编译器不会报错,甚至可能结果都是对的,当a和b分别为零时,结果还会正确吗?
例如2:跳过文件中的空格符,制表符和换行号
While(a=’ ‘||a==’\t’||a==’\n’)
a=getc(f);
空格比较运算符错写为赋值运算符,又因为赋值运算符的运算等级远远低于||运算符,while的内置条件就成为了a=(’ ‘||a==’\t’||a==’\n’)条件会一直成立,只要不停止文件的输入,循环就不会停止。
警告信息可以忽略,但是程序出现的bug却不能忽略。
2.&和|不同于&&和||
按位运算符&与逻辑运算符&&,或者将按位运算符|与逻辑运算符||调换,也是很容易犯的错。
3.字符和字符串
C语言中的单引号和双引号含义完全不同,如果两者弄混,编译器并不会报错,只是运行结果会出现令你不开心的结果。
单引号引起的一个字符其实一般代表着一个整数,因为每个字符在编译器中都会有一个整数与之对应,像’a’一般在程序中把它当作97的,后面的字母在97依次增加。
双引号引起来的字符串,代表的是一个指向无名数组起始字符的指针。
例如:
Printf(“hello world \n”);
Char st1[]={‘h’,’e’,’l’,’l’,’o’,’w’,’o’,’w’,
’o’,’r’,’l’,’d’,0};
Printf(hello);
上面两个程序是等效的,结果都是一样的。
你会发现双引号其实代表一个指针,而单引号则代表着一个整数,两者混用,有时编译器可能会提醒你,但是有时编译器也会识别不出,这时候如果不细心,这个bug会一直折磨你。
标签: #c语言的单引号怎么打