设有以下宏定义:#define f(z) z*z,执行赋值语句int k; k=(4+4)⼀f(2+2);后k的值为多少

2024-11-27 14:47:37
推荐回答(4个)
回答(1):

宏定义把握一点:原样代入,不要主观加括号

#define f(z) z*z, //注意z没有括号,所以f(z)中的z是一个表达式的话,这个表达式不会作为一个整体加上括号
k
=(4+4)/f(2+2)
=8/f(2+2)
=8/2+2*2+2
=4+4+2
=10

回答(2):

(4+4)/f(2+2) = 8/2+2*2+2 = 4+4+2 = 10

回答(3):

k=8/16=0;应为k是int型变量k=0

回答(4):

z=2+2;
把整个z带入
k=8/(2+2)*(2+2)=8/16=0