【发布时间】:2015-10-27 13:37:54
【问题描述】:
我的代码相当于以下内容:
const int* const n = new int;
printf("input: ");
scanf("%d", n);
delete n;
现在,由于 n 是一个指向 CONSTANT 整数的指针,这应该不起作用(我期待编译器错误)。但是,这似乎可以正常工作,甚至可以将输入的值存储到 *n 中。
我想知道,为什么这不会给我一个错误;为什么它有效? scanf 不应该不能改变 *n 的值吗?
【问题讨论】: