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

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

#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=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

阐述明白了没有


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8160655.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存