永发信息网

int k=10; if(k=0) printf("Yse"); else printf("%d",k); 结果为什么是0啊?

答案:4  悬赏:40  手机版
解决时间 2021-03-20 23:03
  • 提问者网友:嘚啵嘚啵
  • 2021-03-20 17:36
int k=10; if(k=0) printf("Yse"); else printf("%d",k); 结果为什么是0啊?
最佳答案
  • 五星知识达人网友:人间朝暮
  • 2021-03-20 17:42
1、c/c++中=(一个等号)是用来赋值的;==(两个等号)是用来判断相等的。
2、在这个程序中if(k=0),c\c++会先给k赋值0,然后再判断k的逻辑值,k的逻辑值是0返回false,然后执行printf("%d",k);当然会打印0,因为k前面已经赋值为0了。
3、程序的正确写法是:
int k=10;
if(k==0)
printf("Yse");
else
printf("%d",k);
全部回答
  • 1楼网友:有你哪都是故乡
  • 2021-03-20 19:17
你把if(k=0)改成if(k==0)就好了 在C语言中k=0是赋值语句,所以if(k=0)这里把变量k赋值0了,而if(k==0)才是判断语句。
  • 2楼网友:独钓一江月
  • 2021-03-20 18:06
你把if(k=0)改成if(k==0)就好了 在C语言中k=0是赋值语句,所以if(k=0)这里把变量k赋值0了,而if(k==0)才是判断语句。 再看看别人怎么说的。
  • 3楼网友:大漠
  • 2021-03-20 18:01
如要判断k是否为0的话,应该用 if(k==0)... 如果用 if(k=0) printf("Yse"); else printf("%d",k);的话 是这样执行的: 为k赋值为0,括号表达式的值为0(即假,条件不满足),于是执行printf("%d",k); 就输出0。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯