标题:小弟有个问题不会,想请教一下
只看楼主
会飞的兔子
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-7-30
结帖率:100%
已结贴  问题点数:20 回复次数:2 
小弟有个问题不会,想请教一下
#include "stdafx.h"
#include<iostream>
#include<iomanip>
using namespace std;
#define max(a,b) ((a)>(b)?(a):(b))

int _tmain(int argc, _TCHAR* argv[])
{
    int m=0,n=0;
    cout<<max(m,++n)<<endl;
    return 0;
}
输出结果为什么是2,而不是1
搜索更多相关主题的帖子: include max int cout return 
2019-07-30 17:59
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
因为宏展开后,你的代码等同于
程序代码:
#include <iostream>
using namespace std;

int main( void )
{
    int m=0, n=0;
    cout << ( m>++n ? m: ++n ) << endl;
}
看到个 ++n 了吗?
2019-07-31 08:29
会飞的兔子
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-7-30
得分:0 
非常感谢
2019-08-02 16:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-496113-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.272889 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved