下列关于const和#define定义常量的区别,说法不正确的有()
A. define宏是在预处理阶段展开。const常量是编译运行阶段使用
B. 宏没有类型,不做任何类型检查,仅仅是展开。const常量有具体的类型,在编译阶段会执行类型检查
C. define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。const常量会在内存中分配(可以是堆中也可以是栈中)
D. const定义和#define定义的常量在程序运行过程中只有一份拷贝
N诺智能批改可自动批改答案并给出反馈,每次使用将消耗 1个诺币
您当前的诺币数量: 个
N诺正在智能批改,预计需要30秒,请稍候...
const定义的常量只有一次拷贝没错,而define定义的变量在内存中并没有拷贝,因为所有的预处理指令都在预处理时进行了替换。
对于 #define 定义的宏,它在预处理阶段进行文本替换,所以在代码中出现多少次,就会被展开多少次,不会有单一的拷贝。而 const 常量在某些情况下可以被优化为单一的拷贝,但它的数量和位置仍然取决于编译器的优化策略。因此 const 常量的行为也可能导致多于一份拷贝。
#define
const
D
[解析]
A,正确...
登录后提交答案