VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 698|回复: 4

[交流] 看不懂 输出

[复制链接]
47_avatar_middle
最佳答案
0 
在线会员 发表于 2018-9-7 10:29:41 | 显示全部楼层 |阅读模式
3驿站币
bool Fun1(char *str)
{
        printf("%s\n", str);
        return false;
}
bool Fun2(char *str)
{
        printf("%s\n", str);
        return true;
}
int _tmain(int argc, _TCHAR* argv[])
{
        bool res1, res2;
        res1 = (Fun1("a") && Fun2("b")) || (Fun1("c") && Fun2("d"));
        res2 = (Fun1("a") && Fun2("b")) && (Fun1("c") && Fun2("d"));
        system("PAUSE");
        return 0;
}

这是源码,编译输出是     a  c  a  三个,但是 Fun1,Fun2 加起来 调用了 8次,怎么只有 3 个输出





上一篇:minifilter透明加密。
下一篇:【第一次写驱动】编译没问题 就是安装失败 加载也失败
51_avatar_middle
最佳答案
8 
online_admins 发表于 2018-9-7 10:37:28 | 显示全部楼层
这个问题就是为什么C++中不建议开发者自己重载逻辑运算符的原因!
实际就是逻辑运算符的短路问题!
楼主可以看看这篇文章,看完了就明白了:
https://blog.csdn.net/q_l_s/article/details/52933787
08_avatar_middle
最佳答案
0 
在线会员 发表于 2018-9-7 12:57:43 | 显示全部楼层
Syc 发表于 2018-9-7 10:37
这个问题就是为什么C++中不建议开发者自己重载逻辑运算符的原因!
实际就是逻辑运算符的短路问题!
楼主 ...

任何语言都是这样的不单单是C++
02_avatar_middle
最佳答案
0 
在线会员 发表于 2018-9-7 13:33:00 | 显示全部楼层
SummerGull 发表于 2018-9-7 12:57
任何语言都是这样的不单单是C++

看不懂 输出以为运算符重载是C++独有的呢,C++难于java,运算符重载算一条,功能强大但不好理解,当初就卡在这上,撵压过去唉
08_avatar_middle
最佳答案
0 
在线会员 发表于 2018-9-9 15:28:07 | 显示全部楼层
Dvol 发表于 2018-9-7 13:33
以为运算符重载是C++独有的呢,C++难于java,运算符重载算一条,功能强大但不好理解,当初就卡在 ...

我学的基本都有 比如C++  python 都有,
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-11-22 11:42

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表