猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
C 感觉逻辑一样的- -。然并卵,有图 ,不服
怎么运行的结果一个45一个21 - -。。。。。。。 哪个是正确的- -,
三月源
浏览 1450
回答 3
3回答
MadMarical
你好,首先理解宏是一个直接替代,相当于是用这块直接替换了调用快。所以,对于程序1:g(2 + 3,4,5) =2 *f(2 + 3, 4,5) = 2 * 2 + 3 * 4 + 5 = 21。对于程序2 : 因为你首先int x = 2 + 3所以在编译器执行程序时,按照流程会先算出来此时x = 5。所以g(x,y,z) = 2 * 5 * 4 + 5 = 45。对于计算机来说,这两段代码都没有错误。对于我们来说,需要细细想清楚。
0
0
0
zhuceyong244
宏替换不会自动帮你加上括号
0
0
0
努力提升
上面的计算为:2*2+4*3+5 =21下面的x直接是5了,所以计算为:2*5*4+5 = 45
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C
typedef入门问题
1 回答
C++
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续