00问答网
所有问题
#define P 3 #define S(a) P*a*a main() {int ar; ar=s(3+5) printf("\n%d",ar) } 这个答案是29,不懂。。
帮帮忙解答一下吧
举报该问题
推荐答案 2011-06-17
#define宏都是直接替换的,不会计算后再替换。
s(3+5) = p*3+5*3+5 = 9+15+5 =29
若想计算后在替换,需要加上括号:
#define S(a) P*(a)*(a)
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/nTBjTI0TB.html
相似回答
...
S(a)
P*a*a
main()
{int
ar;
ar=s(3+5)
printf(
"\n%d",ar) } 这 ...
答:
define
S(a)
P*(
a
)*(a)
c语言问题不会,求指点
答:
宏会完全替换,也就是说
s(3+5)
会被替换为
3*3
+5*3+5先算乘法,结果就是9+15+5,所以结果就是29
c语言问题
答:
因为
#define
S(a)
P*a*a
定义后 是直接替换 运算过程是这样的 3*
3+5
*3+5 所以是29 弱势这样定义的 P*(a)*(a)结果就是192
C语言的一个题,求解???看不懂???
答:
你好:关于宏观替换是吧S(a)里边的a当作一个整体去替换,而P定义为3,可以替换为
S(a)=3*a*a
,而在传递a的值时,是S(3+5),直接把3+5替换a,就是
S(3+5)=3
*3+5*3+5=29;如果,定义宏
S(a)=P*(
a)*(a),则不会出现你担心的问题,它也是直接替换S(3+5)=3*(3+5)*(3+5)...
大家正在搜
相关问题
c语言问题
c语言问题不会,求指点
#include <stdio.h>#define S(a,...
#include<stdio.h> #define PT 5...
#define SUB(a) (a)-(a) main(...
c语言 #define SUB(a) (a)-(a) mai...
#define PR(ar) printf("ar=%d "...
#define M 3 #define N M+1 #def...