注册 登录
编程论坛 C++教室

if的一个小问题

含泪冰淇淋★ 发布于 2011-08-21 22:08, 592 次点击
程序代码:
#include <iostream>
using namespace std;
int main()
{
    enum me{a};
    me we;
    we=a;
    if (we=a)
    {
        cout<<"1";
    }
    else
        cout<<"2";
    return 0;

}




我感觉we=a,应该输出1啊  
怎么编译后  输出2
纠结死我
6 回复
#2
xg56992011-08-21 23:18
  if (we=a) 意思是将a赋值给we;
=符号是赋值,而==这个才是等于符号,很多程序会因为这个不起眼的错误浪费大量的时间,用if语句这个符号一定要注意
#3
博士无双2011-08-22 21:34
if(we==a)
这才是比较是否相等
#4
karst872011-08-22 22:30
程序代码:
#include <iostream>

using namespace std ;

int main()
{
    enum me{a} ;
    me we ;
    we = a ;
    if( we == a )
    {
        cout << 1 << endl ;
    }
    else
    {
        cout << 0 << endl ;
    }

    return 0 ;
}
#5
八画小子2011-08-23 02:09
enum me{a};------------a的值是0;
if(we=a)---------------首先把a赋给we,也就是说把0赋给we,然后把表达式(we=a)的值转换为bool类型,0被转换为false,跳过if之后的语句,开始执行else{}中的语句。
#6
落叶深蓝色2011-08-23 17:42
==很多人写成=                    ==
#7
ergouge2011-08-26 09:54
初学的基本都会犯这个错误的  以后小心就行了哈
1