66问答网
所有问题
C语言中关于宏定义的一道计算题
设有宏定义:#define F(N) 2*N,则表达式F(2+3)的值是7这道题是怎么算的,我只懂这种题目。#define A 5然后下面的5就全用A替代了
举报该问题
推荐答案 2014-01-02
首先宏只负责替换,不负责计算。题目中替换后就是2*2+3 =7,他不会帮你计算2+3=5,而只是把2+3放到应该替换的地方
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/DsDspn2nnUnxsD9nis.html
其他回答
第1个回答 2014-01-02
按宏定义展开后,F(2+3)成为这样:2*2+3=7。这个宏定义的错误是没有在2*N上加括号,这样造成的2义性在程序当中是很难发现的。
第2个回答 2019-04-29
从
右
往左边算
j开始是2
j++就是
2
但是
j变成3了
++j的
值是4
j变成4了
j++就是
4
所以
等号右边一共是
2+3+4=9
m+=
9
所以
m是11了
相似回答
C语言中关于宏定义的一道计算题
答:
首先宏只负责替换,不负责
计算
。题目中替换后就是2*2+3 =7,他不会帮你计算2+3=5,而只是把2+3放到应该替换的地方
一道c语言宏定义计算
答:
s = a+1*a+1*a+1 = 10 t = (a+1) * (a+1) * (a+1) = 64
C语言宏定义计算
问题
答:
答案是21 因为你
定义的
f(x) x*x ,而你下面的i=f(4+4)/(2+2)中是讲4+4作为x的值,所以展开的时候是这样的, i=4+4*4+4 /(2+2),所以结果是 i=4+16+1 ,当然是21了
c语言中宏定义
问题
答:
宏定义
就是在编译预处理的时候用于替换定义的字符串。像这样后面有几个空格隔开的宏定义是可以的,但必须是字符串。如#define abc “adb efg hijk”如#define abc “adf”“dasf”“dsf”会将后面的字符串连接起来成为“adfdasfdsf”
C语言
设有以下
宏定义
,则执行语句x=2*(N+Y(5+1));后,x(设x为整型)
的
...
答:
x=2*(N+Y(5+1))=2*(3+Y(5+1))=2*(3+((3+1)*5+1)这里注意,n没有被括号,所以乘法优先 =2*(3+20+1)=48 或:z=2*(N+Y(5+1));分步来替换,先替换Y(n)z=2*(N+ ((N+1)*5+1) );再替换N z=2*(3+((3+1)*5+1) ); = 2*(3+4*5+1)=2*24=48 ...
C语言
,有
宏定义
#define SQR(a)2*a*a,则SQR(3+4)
的
值是多少? 有帮助必...
答:
宏
展开后,即 2*3+4*3+4 按照优先级
计算
,结果是22 所谓宏展开,你可以简单的理解为文本编辑器"替换"功能 就是把文本"3+4"代替"a"2*a*a就成了2*3+4*3+4
大家正在搜
C语言中宏定义的一个变态用法
C语言中宏定义的命令是
c语言中的宏定义
c语言中宏定义的作用
c语言宏定义计算
C语言中为什么要进行宏定义
C语言中宏定义做什么
c语言怎么宏定义中文
c语言中怎么定义宏
相关问题
一道C语言关于宏的小题目
一道c语言宏定义计算
关于C语言的一个简单计算题!!
C语言关于宏定义的习题
关于c语言的一道题
c语言里面关于宏定义的一个小问题
求助一道C语言题目
C语言的宏定义问题