龙空技术网

C语言知识点——指针与const修饰

glimix 633

前言:

目前我们对“c语言的const”都比较关怀,咱们都需要剖析一些“c语言的const”的相关知识。那么小编同时在网摘上搜集了一些对于“c语言的const””的相关资讯,希望兄弟们能喜欢,小伙伴们一起来学习一下吧!

我是只读的

const可以修饰变量,这时这个变量将具有只读特性,也就是说不能更改它的值。注意:在C语言下,被const修饰的变量仅仅是只读的,而不是常量,因此它不能用于数组的定义。但是,有一点又很突兀,你可以定义一个指针指向这个只读变量,然后间接的改变它!

错误的代码行已经标注了出来,最后由于使用指针间接修改了值,因此这个只读变量被修改了,值为32。

指针与const

当用const修饰指针时,情况多少有些复杂,初学时很容易混乱,这主要是因为const可以修饰指针与指向两部分,我们来看个例子。

从代码中可以看到,对于一个变量,const可以应用到指针本身,也可以应用到指针指向的值。

当应用于指针时,指针的值不能改变,即 pa=&other; 是错误的。当应用于指针指向的值时,被指向的值不能修改,即 *pa=3; 将是错误的。当应用于两者时,指针即不能重新指向,指向的值也不能修改。

还要注意一点,代码中第8行与第9行声明其实是一致的,选择哪一种取决于个人喜好。

我这里给出一张图,可以帮助你瞬间理解指针与const的关系。

我不再解释了,一图胜千言,喜欢的朋友关注我一波。 :)

标签: #c语言的const