常量指针应该被解除引用吗?

时间:2012-08-21 16:18:12

标签: c const constants

在下面的代码中:

int a=5,b=6,c=7;;
int *const ptr = &a;

//if ptr = &b; is wrong since it is a pointer constant.

取消引用指针是否适用?

*ptr = 8; //is it allowed?

如果没有,那么为什么?

那么解除引用哪些地方适用?

1 个答案:

答案 0 :(得分:7)

int *const ptr = &a;

在这种情况下,指针是常量,但它指向的数据不是恒定的 因此,您无法使指针指向其他变量,但您可以修改指向的值。

*ptr = 8; 
允许

,因为它只会更改存储在指针所指向的地址的值。