编译的时候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=1i<=NUMi++) printf(
选A。此题考察的是宏定义的知识
#define M N+1
#difine NUM 2*M+1
将M=N+1带入:即为
M=2*N+1+1=6。
i从1~5,所以for循环5次
与值对应的是
#define M N+1
#difine NUM 2*(M)+1
这样带入的时候就是
2*(N+1)+1=7
阐述明白了没有
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)