Joesph 发表于 2022-11-6 22:00:06

新手刚学C语言,求大佬们帮忙看看

本帖最后由 Joesph 于 2022-11-6 22:15 编辑

int i = 1;
if (i = 2)cout << "ok";
else cout << "nook";
if (10) cout << "10";
else cout << "no10";
以上代码是题目,以上代码运行后的结果为什么是ok 10?不是规定i=1了吗,不是如果i=2才输出ok?

tommyyu 发表于 2022-11-6 22:06:22

应该写 i == 2,两个等号是判断是否相等,一个等号是赋值

Joesph 发表于 2022-11-6 22:14:45

tommyyu 发表于 2022-11-6 22:06
应该写 i == 2,两个等号是判断是否相等,一个等号是赋值

代码是题目

tommyyu 发表于 2022-11-6 22:20:34

本帖最后由 tommyyu 于 2022-11-6 22:25 编辑

Joesph 发表于 2022-11-6 22:14
代码是题目

i = 2 这个表达式的值是 2,因此 if( i = 2 )被执行的时候就变成了 if( 2 )

人造人 发表于 2022-11-7 09:09:21

这不是C语言吧?

homeskating 发表于 2022-11-7 10:45:00

你这不是CPP吗?一个=号是赋值,付完值算true然后执行打印ok。if(10)无论何时都是对的,打印10

Joesph 发表于 2022-11-7 14:58:32

人造人 发表于 2022-11-7 09:09
这不是C语言吧?

啊,我不知道,这是C语言书里面的课后题{:10_266:}

人造人 发表于 2022-11-7 15:34:05

Joesph 发表于 2022-11-7 14:58
啊,我不知道,这是C语言书里面的课后题

C语言的书?换一本吧

china2022 发表于 2022-11-8 12:15:42

应该写 i == 2,两个等号是判断是否相等,一个等号是赋值
页: [1]
查看完整版本: 新手刚学C语言,求大佬们帮忙看看