(grade=cin.get())!=EOF与grade=cin.get()!=EOF有什么区别

原问题:(grade=cin.get())!=EOF与grade=cin.get()!=EOF有什么区别
分类:编程开发 > 最后更新时间:【2017-08-02 01:02:49】

最佳答案

这两个的区别主要是运算符优先级的问题,在C++中!=的优先级要高于=,当然()的最高

所以

第一个表达式是先执行grade=cin.get(),再判断表达式的值也就是grade的值是否不等于EOF

这个也是常用的写法

而第二个是先判断cin.get()是否不等于EOF,然后将结果赋给grade,也就是grade不是0就是1,这个一般是错误的写法

在C++中,运算符的优先级如小学数学的先+-,后*/一样,要掌握的

最佳答案由网友  whoami1978  提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
20

分享到:

其他回答

其它网友回答:
你的问题就是这个???  (,),我看出来的就这两个。。。


追问:
我是说在程序运行中作用的区别
追答:
哦,那么不好意思了,不过网上的资料显示,这两个 的区别,估计就是 函数。。。
    推荐
  • (grade=cin.get())!=EOF与grade=cin.get()!=EOF有什么区别