c语言define的问题,在线等
发布网友
发布时间:2022-04-22 04:53
我来回答
共2个回答
热心网友
时间:2023-10-01 21:33
定义的是#difine M(x) x(x+1)
是指M(x) 用x(x-1) 代替
当程序中出现M(a+b) 时,x直接被a+b取代(注意千万不要擅自加括号!):
a+b(a+b+1)
它相当于:a+b×(a+b+1)
在a=2,b=3时,它的值是2+3×(2+3+1)=2+3×6=2+18=20
所以程序最终输出的是20。(而不是30奥)
有什么问题请留言。
热心网友
时间:2023-10-01 21:33
define其实是编译的时候直接替换文本的。
所以这个就是
a+b*(a+b+1)=2+3*(2+3+1)=20。
这样写
#define M(x) (x)*(x+1)才是你感觉的那个答案5×6=30。