const详解

const用法的解析

被const修饰的变量一定不会修改吗?

在这里插入图片描述

n变量被const修饰时,当修改n的内容时出现了编译性的报错
在这里插入图片描述
在这里插入图片描述
我们可以通过指针变量p指向n,来间接修改n的值.只不过n的值未发生变化,*p发生了变化

既然被const修饰的变量可以被修改,那const存在的意义是什么呢?
结论:

  • 告诉程序员(我定义的这个变量时时不容许被修改的)
  • 告诉编译器(当我们通过指针指向要修改的变量时,需要强转,告知编译器,我明白我在修改一个常量)

const的位置

当用const修饰一个指针时,它的位置不同会有什么不一样的效果呢?

const在*的左面

在这里插入图片描述
在这里插入图片描述

此时该指针指向变量的内容不能修改,指针指向可以改变

const在*的右面

在这里插入图片描述
此时指针指向的变量内容可以修改,指针指向不可以修改
在这里插入图片描述
此时指针指向的变量内容,指针指向均不可以修改

结论:
const修饰指针变量的时候:

  1. const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改
    变。但是指针变量本身的内容可变。
  2. const如果放在*的右边,修饰的是指针变量本身,保证了指针变量的内容不能修改,但是指
    针指向的内容,可以通过指针改变
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值