【C语言】秒懂!const修饰的指针

  对于const修饰的指针,很多小伙伴们不是很清楚其使用的方法,导致很多时候错误的使用,在这里我将浅显易懂的讲解const对于指针的用法!

首先const修饰的指针类型有以下几种:

1.const int *p
2.int const *p
3.int *const p
4.const int *const p

下来我们具体讨论其使用方法

1.const int *p

  这里我们只需要搞清楚const修饰的是什么,就可以得出结论
我们将类型去掉,const … *p,我们可以看到,const其实主要就是修饰 *p的。
  这代表p指向的空间中的内容不能通过此指针来进行改变

int a=100;
int *p= &a;
*p=200; //错误!

2.int const *p

  这里我们可以通过上述的方式进行判断,const修饰的内容是什么。经过判断,const修饰的还是*p,所以答案与上述一致。

3.int * const p

  这里我们应该学会了判断const如何进行修饰的,所以判断const修饰的是 p。
  这时候就不一样了,const指的是修饰p指针的本身,表示指针的值不能进行修改,也就是说,指针的指向不能进行修改(指针不能指向其他位置)

int a=100;
int*const p;
p = &a;  //错误!!修改了指针的指向

注意:如果是const修饰指针变量的本身(int* const p),我们在定义的时候必须对其进行初始化,不然就没有机会了。

4.const int *const p

  这个是对上述进行结合使用,既不能通过指针来改变空间中的值,也不能改变此指针的指向。

  以上就是const的使用方法,但是我们还要注意的一点是,在c语言中上述代码都可以通过编译,但是在C++中(int const p和const int * const p)这两种不能通过编译。*

  因为C++中对于const的限制还是很严格的,对于不能修改其指向的指针毫无意义,所以就会报错。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值