如题所述
答案应该是B
答案A 因为 N不是变量 ,不能描述为:N的值是100
#define N 100是宏指令,是在程序编译的 预处理阶段 展开的。
所以B描述的更加精确,C描述的模糊。
答案D,C语言的宏的展开不是在程序运行阶段展开的。所以是错的。
-------------------
希望我的回答对你有所帮助,很高兴和你一起学习和讨论C/C++
温馨提示:答案为网友推荐,仅供参考
第1个回答 2021-03-02
B是正确的,所以选B就对了——因为#define N 100这叫预处理语句,其中N叫“宏标识符”,是右边的100这个字符串的“标记”,只在预处理过程中有效。预处理过程中凡是能被解释成独立N的地方都要用100这个字符串替代。所以N既不是“值”也没有类型,把100解释成整型100还是浮点100,抑或把100那个地方写的其他字串解释成函数名、运算符等,要看替换后它所处的C语句中的位置应该是什么类型或其他合法符号。显然:A说N的值是100是错误的;C不是编译时替换而是预处理时替换,所以错;D运行时替换就更错了!
(看到microroom朋友的提醒更正的)本回答被提问者采纳
(看到microroom朋友的提醒更正的)本回答被提问者采纳
第2个回答 2021-03-02
选C,因为对于编译语言,宏展开是在编译时进行的
第3个回答 2021-03-02
答案选择C,谢谢,望采纳!