博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《C语言解惑》—— 3.5 不要用错等于运算符
阅读量:5835 次
发布时间:2019-06-18

本文共 962 字,大约阅读时间需要 3 分钟。

本节书摘来自华章出版社《C语言解惑》一 书中的第3章,第3.5节,作者:刘振安 刘燕君,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.5 不要用错等于运算符

【例3.9】下面程序正确吗?

#include 
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 
#include
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 
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

转载地址:http://egycx.baihongyu.com/

你可能感兴趣的文章
实验二
查看>>
独立开发一个云(PaaS)的核心要素, Go, Go, Go!!!
查看>>
MyBatis使用DEMO及cache的使用心得
查看>>
网站文章如何能自动判定是抄袭?一种算法和实践架构剖析
查看>>
【OpenCV学习】滚动条
查看>>
ofo用科技引领行业进入4.0时代 用户粘性连续8个月远甩摩拜
查看>>
兰州青年志愿者“中西合璧”玩快闪 温暖旅客回家路
查看>>
计划10年建10万廉价屋 新西兰政府:比想象中难
查看>>
甘肃发首版《3D打印职业教育教材》:校企合作育专才
查看>>
李娜入选国际网球名人堂 成亚洲第一人
查看>>
为找好心人抚养孩子 浙江一离婚父亲将幼童丢弃公园
查看>>
晚婚晚育 近20年巴西35岁以上孕妇增加65%
查看>>
读书:为了那个美妙的咔哒声
查看>>
jsp改造之sitemesh注意事项
查看>>
SpringBoot-Shiro使用
查看>>
iOS 9.0之后NSString encode方法替换
查看>>
解决 ThinkPHP5 无法接收 客户端 Post 传递的 Json 参数
查看>>
ASMFD (ASM Filter Driver) Support on OS Platforms (Certification Matrix). (文档 ID 2034681.1)
查看>>
CRM Transaction处理中的权限控制
查看>>
[转]linux创建链接文件的两种方法
查看>>