这个表达式!a&&b++的结果与设想的为何不一样?

huxiaoxuan 2004-08-05 02:51:59
我是一个C++初学者,遇到一个问题,这段程序执行后b为何还是3?程序如下:
#include <iostream.h>
void main()
{
int a=5,b=3,c;
c=!a&&b++;
cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;
}
...全文
204 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangyang88 2004-08-05
  • 打赏
  • 举报
回复
楼主可以试试这个
int a=0,b=3,c;
c=!a||b++;
cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;

这个和上面的道理差不多,!a 已经是1,所以§§后面的表达式b++也不再计算
GRACEPANDA 2004-08-05
  • 打赏
  • 举报
回复
支持楼上观点,最好加上()来确定你所要执行过程的顺序
铖邑 2004-08-05
  • 打赏
  • 举报
回复
因为 !a 已经是0,所以&&后面的表达式b++;不再计算,OK?
whyglinux 2004-08-05
  • 打赏
  • 举报
回复
因为 !a 为 false,整个 && 的结果已经可以判断为 false,所以不再执行 && 右面的表达式 b++。这是逻辑运算表达式的特点。

64,637

社区成员

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

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