C语言学习笔记——指针:const指针

当定义一个指针变量时,它的本身的值以及该指针变量所指向的数据都可以被声明为const。const在变量语句中所处的位置不同表示的含义也不同。下面分别讨论。
(1)const放在类型关键字前面
例如:

int a,b;
const int *p=&a;

说明,*p是一个常量,即只读的,而p不是,我们从右至左来理解这条语句,即p是一个指针变量,可以指向一个整型常量。这时不可以修改*p。但是p指向的变量的值是可以修改的。则,

*p=10; //非法操作
p=&b;//合法操作

这种指针指向的内容是常量(无法修改)的指针就叫做指针常量
(2)const放在类型关键字后边和*变量名的前边。
例如:

int const *p=&a;

这种情况和情况(1)是等价的。
(3)const放在类型关键字*的后面和变量名的前面。
例如:

int * const p=&a;

说明p是常量,即只读的,而*p不是。按照从右至左的顺序,即p是一个常量指针可以指向一个整数。这时p是一个常量,其值是不可以修改的,及不能再程序中修改指针p让它指向其他变量,但是它所指向变量的值是可以修改的。则,

*p=20 //合法操作
p=&b; //非法操作

这种指向的地址是常量的指针称为:常量指针
(4)一个const放在类型关键字的前面,另一个const放在类型关键之*的后边和变量名的前面。
例如:

const int * const p=&a;

说明p和*p都是一个常量,即只读的,按照从右至左的顺序,即p是一个常量指针,可以指向一个整型常量,这时其值和指向都是不可以修改的。则,

*p=20; //非法操作
p=&b; //非法操作

这种既不能修改指针的地址,也不能修改指针指向的内容的指针称为:指向常量的常量指针
总结*(指针)和 const(常量) 谁在前先读谁 ;*象征着地址,const象征着内容;谁在前面谁就不允许改变。

参考文献:C语言大学实用教程

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值