const与指针

在定义指针时,如果使用const进行修饰,根据const出现的位置和const出现的次数我们可以分为三种情况:一、指向常量的指针,二、常指针,三、指向常量的常指针。

一、指向常量的指针。

定义形式:const 类型名 * 指针名        (也可以写做类型名 const * 指针名)

例如:int a = 3, b = 2; const int * p = &a;     (int const * p = &a;)

这里指针p本身是变量,我们还可以用它指向其他的变量,但是不能用它来修改a的值,比如*p=2;这种行为是不允许的,不过我们可以将p指向b这个变量,但是值得注意的是a是变量,我们可以通过a=2;来修改a的值。

二、常指针。

定义形式:类型名 * const 指针名 = 地址值

例如:int a = 3, b = 2;int * const p = &a;

这里指针p是一个常量,我们不能把他指向其他的变量了比如说b,但是他指向的地方是一个变量,也就意味着我们可以进行*p=2;这种行为去改变a的值,但是不能进行p=&b;这种行为了。因为p是一个常量,我们必须在定义的时候进行初始化。

三、指向常量的常指针。

定义形式:const 类型名 * const 指针名 =地址值

例如:int a = 3, b = 2;const int * const p = &a;

这里不仅仅p是一个常量,并且p指向的内容*p也是不能进行修改的,所以p必须在定义的时候进行初始化。也就是说我们不能进行*p=2;和p=&b;这两种行为,但是要注意a不是一个变量,我们可以通过a=2;这种行为来修改a的值,相对应的*p也会变成2。

指向常量的指针和常指针我们可能会混淆,可以通过const和*的位置来进行记忆。当const在*左侧时,指针是一个变量,它指向常量,也就是指向常量的指针;当const在*右侧时,指针是一个常量,它指向一个变量,也就是常指针。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值