有如下程序 #define N 2 #define M N+1 #define NUM 2*M+1 main( ) { int i; for(i=1;i<=NUM;i++) printf(

 我来答
abc19899
2010-11-26 · TA获得超过124个赞
知道答主
回答量:127
采纳率:0%
帮助的人:110万
展开全部
#define是用一段文字代替另一段文字
编译的时候N是“2”,M是“N+1”,所以M最后为“2+1”
NUM是“2*M+1”,把其中的M换成“2+1”可以得到 NUM为“2*2+1+1”为6,系统不会给M自动加括号
非要用宏来实现的话只能在每次使用N,M和NUM的时候手动加上括号。
一般用常量变量,这样写
const int N=2;
const int M=N+1;
const int NUM=2*M+1
main()
{int i;
for int i;
for(i=1;i<=NUM;i++) printf(

参考资料: C++教材

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式