const详解

Posted ~千里之行,始于足下~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const详解相关的知识,希望对你有一定的参考价值。

const用法的解析

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

n变量被const修饰时,当修改n的内容时出现了编译性的报错


我们可以通过指针变量p指向n,来间接修改n的值.只不过n的值未发生变化,*p发生了变化

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

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

const的位置

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

const在*的左面


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

const在*的右面


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

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

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

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

以上是关于const详解的主要内容,如果未能解决你的问题,请参考以下文章

转C++ 常量类型 const 详解

const详解

const和typedef的常见用法详解

C语言 const使用详解

C语言 const使用详解

C++ const使用详解