《C语言解惑》—— 3.5 不要用错等于运算符
C语言 运算符 不要 等于 3.5 解惑
2023-09-11 14:19:12 时间
本节书摘来自华章出版社《C语言解惑》一 书中的第3章,第3.5节,作者:刘振安 刘燕君,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.5 不要用错等于运算符【例3.9】下面程序正确吗?
#include stdio.h void main ( ) char ch,c=H; char st[3],s[]="Hellow"; ch=c; st=s; printf("%c,%s\n",ch,st); }
编译给出:
error C2106: = : left operand must be l-value
字符有“=”运算符,但字符串没有,所以语句“st=s;”不正确。解决的办法是使用strcpy函数,使用时包含定义它的头文件string.h即可。
【例3.10】使用strcpy函数的例子。
#include stdio.h #include string.h void main ( ) char ch,c=H; char st[3],s[]="Hellow"; ch=c; strcpy(st,s); printf("%c,%s\n",ch,st); }
输出结果为:
H, Hellow
注
意 不要混淆数学运算符“=”和比较运算符“==”。
【例3.11】想在下面的程序中得到的输出是“5不等于6”,能实现吗?
#include stdio.h void main ( ) ? int a=5, b=6; ? if(a=b) ?printf("%d等于%d\n",a,b); ? else printf("%d不等于%d\n",a,b); }
这里将比较运算符“==”错认为赋值运算符“=”。因为“a=b”使用等于运算符,所以使a的值为6。也就是if的表达式为6而不是0,根据if(6)不为0的条件,应执行else后面的语句,输出结果为“6不等于6”,这显然是错误的。
将if表达式改为
if(a==b)
则输出结果为:
5不等于6
c语言 数组名和下标运算符 前面我们稍微提过数组的属性:数组名就是首元素的首地址,即 &a[0]==a; 则:int *p = 也可写成 int *p = a ; 两者一摸一样,平时都是用第二种,因为写起来比较方便。
C语言运算符——自增与自减 自增与自减 一个整数类型的变量自身加 1 可以这样写: a = a + 1;或者a += 1;不过,C语言还支持另外一种更加简洁的写法,就是:a++;或者++a;这种写法叫做自加或自增,意思很明确,就是每次自身加 1。 相应的,也有a–和--a,它们叫做自减,表示自身减 1。++和–分别称为自增运算符和自减运算符,它们在循环结构中使用很频繁。
相关文章
- C语言程序设计100例之(4):水仙花数
- 【C语言疯狂讲义】(三)C语言运算符
- 12 C++ - 三目运算符功能增强(比较C语言)
- C语言运算符的优先级
- “全网最细“C语言指针笔试题详解
- C++:C语言实现HTTP的GET和POST请求
- 《C语言编程初学者指南》一2.9 理解运算符优先级
- 【C语言】八大排序算法
- 【C语言】空指针
- 基于C语言实现(控制台)学生管理系统【100010726】
- 基于C语言实现(控制台)学生信息管理系统【100010722】
- 【C语言】有一条环形铁路上,共有n个车站(车站的顺序如图所示)现有检查组去检查服务质量,从第s个车站开始,每隔m个站检查一个,直到所有的站都检查完。编写一个程序输出检查顺序。
- 《C语言解惑》—— 1.2 象形字体扰乱视听
- 深入理解计算机系统(2.3)------布尔代数以及C语言运算符
- 不用定时器和汇编语言,只用C语言实现精确无误的延时
- 【嵌入式开发学习】__为什么在C语言中能用指针修改const常量
- 51系列小型操作系统精髓 简单实现6 C语言版待改进
- C语言内存管理 static
- C语言入门——(第一讲——一些计算机基础)
- 《手把手教你学C语言》学习笔记(8)--- 运算符和表达式