== 和 = 的区别????

wangsiyuanoo 2008-06-08 11:35:52
1.==是比较操作,就是等于的意思,对吧?
那=是赋值操作,就是说会将右侧表达式的运算结果指给左侧的一个左值。,这和等于有什么区别啊?

2.if ( ival = 1024 )为什么说应该是 if ( ival == 1024 )?
...全文
283 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zhentiwei 2008-06-10
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 program2050 的回复:]
楼上的都说得很清楚了。
楼主多编几个小程序,对比对比就明白啦。
[/Quote]
Learn-anything 2008-06-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zzhprogram 的回复:]
引用 1 楼 chlaws 的回复:
if 中条件判断语句不能为赋值.

= 是赋值符
== 是比较符

=进行的赋值,返回的是左值,比如:if(i=3)其实就是if(3),只是给i赋值了
==进行逻辑判断,返回的是真假值,C\C++中,0为假,非0为真。所以if(i=3)为真
[/Quote]
passenger728 2008-06-10
  • 打赏
  • 举报
回复
=赋值是对原有的值进行修改,==是对两边数据的比较。
pengzhixi 2008-06-10
  • 打赏
  • 举报
回复
一个是赋值表达式一个是逻辑表达式
lengluoqingqiu 2008-06-10
  • 打赏
  • 举报
回复
==是等于的意思,一般用于判断两边是否相等.
=是赋值a=3是指将3赋给a.
xiaochongzi630 2008-06-10
  • 打赏
  • 举报
回复
一个是赋值,一个是比较.
hai040 2008-06-10
  • 打赏
  • 举报
回复
有些语言把赋值记成 :=可能比较清楚
==两边是可以交换的,A==B和B==A一样
=两边是不能交换的,A=B和B=A完全不同
yangar9179 2008-06-10
  • 打赏
  • 举报
回复
有时间看一下C++Primer Plus中文版第五版讲的很详细的..

=是赋值.
==是条件判断返回true ,false
但=号偶尔也可以用来做判断..
darkarthur 2008-06-10
  • 打赏
  • 举报
回复
if a = b 永远对
if a == b 才是比较
晨星 2008-06-09
  • 打赏
  • 举报
回复
举个简单的例子:
int i = 10;
if(i == i + 1)
这个if是永远不成立的。

if(i = i + 1)
的意思却是将i加1再将结果赋给i本身,然后看i是否为0,是0即表示“假”,否则为“真”。
yuzl32 2008-06-09
  • 打赏
  • 举报
回复
一个是逻辑运算,结果非真即假。用来做条件判断,如if,while...
另一个是赋值语句。将值赋给某个变量。
性能侠客行 2008-06-09
  • 打赏
  • 举报
回复
一起 努力 学习吧,初学者吧,加油。
program2050 2008-06-09
  • 打赏
  • 举报
回复
楼上的都说得很清楚了。
楼主多编几个小程序,对比对比就明白啦。
NKLoveRene 2008-06-09
  • 打赏
  • 举报
回复
一个表示赋值
两个表示判断
fengyizi 2008-06-09
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 lymlymzy 的回复:]
强烈建议你把书看好 !!
[/Quote]
lymlymzy 2008-06-09
  • 打赏
  • 举报
回复
强烈建议你把书看好 !!
KingZ_c1ear 2008-06-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zzhprogram 的回复:]
引用 1 楼 chlaws 的回复:
if 中条件判断语句不能为赋值.

= 是赋值符
== 是比较符

=进行的赋值,返回的是左值,比如:if(i=3)其实就是if(3),只是给i赋值了
==进行逻辑判断,返回的是真假值,C\C++中,0为假,非0为真。所以if(i=3)为真
[/Quote]
 
这两个是两回事吧! (我的理解是==与<=,>=,<,>都是比较符 是比较的;而=是赋值符 在赋值的时候用的 这两个运算符用的场合是不一样的。)
if语句()内是条件语句 ival = 1024 是赋值语句 返回值是非0(真)编译没有错,但是没有起到效果。 ival == 1024是比较(如果ival的值等于1024,系统返回1 (真)执行if(){}里的语句,否者执行以后的语句。 (我的理解)
飞雁 2008-06-08
  • 打赏
  • 举报
回复
if 是条件判断,如果ival = 1024 ,编译不会出错,但是结果不是想象的结果,
ival == 1024 只能是条件判断了啊,语言中就是这么规定的啊,哈哈哈
飞哥 2008-06-08
  • 打赏
  • 举报
回复
1.==是比较操作,就是等于的意思,对吧?

是。

2.if ( ival = 1024 )为什么说应该是 if ( ival == 1024 )?

if ( ival = 1024 )就相當於 if(1)了

始終都成立

if()裏面的是布爾表達式,
ival = 1024作為布爾表達式返回永遠是TRUE
zzhprogram 2008-06-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chlaws 的回复:]
if 中条件判断语句不能为赋值.

= 是赋值符
== 是比较符
[/Quote]
=进行的赋值,返回的是左值,比如:if(i=3)其实就是if(3),只是给i赋值了
==进行逻辑判断,返回的是真假值,C\C++中,0为假,非0为真。所以if(i=3)为真
加载更多回复(13)

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧