图中的代码是一个示例,用于说明指向常量整数的指针。我的问题:
答案 0 :(得分:4)
C允许“指向$except
的指针”实际指向非const const int
,如您所知。它不会引起任何问题,为什么不允许呢?
指针不记得它是指向int
还是正常const int
,所以你总是要把它当作指向int
的对待。这意味着不允许const int
,因为编译器不确定* *p = 3;
不是*p
。
*现代编译器可能能够解决这个问题,但是语言说他们必须假装他们不能,并且他们不会始终能够。
答案 1 :(得分:3)
将const
视为限制 - 它会阻止您写作。然后意思很明确:const int *
添加基本变量可能不存在的限制。
C允许您自由添加此类限制。你不能做的就是删除限制 - 你不能在没有强制转换的情况下在int *
处建立const int
点。