`
891633093
  • 浏览: 48783 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

对const的理解

 
阅读更多
const对很多人来说既陌生又熟悉。可以说很棘手的问题,有些地方很难理解。我在刚学C的时侯,对它的理解也是很模糊的。好像有点理解,但又说不出个所以然来。

在此,就向大家分享,我一直以来对它的理解,如有不当之处请指教。

const可以说一种常量的声明的关键字,如const int a=2;变量a就是一个常变量,a的值不能被改变,这个改变是一定意义上的不能改变。而是说值的改变不能直接通过a这个符号来改变。但事实上,a的值是可能改变的。如下例子:

#include<stdio.h>  int main()  {       const int a=3;       int *p=(int*)&a;       *p=100;       printf("%d",a);       return 0;  }
这样a的值就被改变了。

const也可以说一种只读的关键字,如int integerArray[10]={0};const int* pointer=integerArray; 这里pointer是指向一个常变量的指针变量。pointer指向可能改变,但它所指向的变量的值就不能直接通过pointer来改变。

如:*(p+1)=2;这是不可以的。但如果有另外一个数组integerArray1,p=integerArray1是可以有。还有指向的变量不可改变,这种不可改变是一定意义的改变。

如下例子:

#include<stdio.h>  int main()  {       int array[10]={0};       const int *pointer=array;       int *pointer1=(int*)pointer;       pointer1[0]=1;       printf("%d",array[0]);       return 0;  }
以上例子说明了,不能直接通过pointer改变array,但可能间接通过pointer来改变array;

现在说一说有const声明常指针,它的声明不像声明指向常量的指针形式。它的声明形式为:int* const pointer; 。常指针在编程的过程中它的指向不能改变。
因此,常指针在声明的时侯一定要给它赋初值。否则,就不能直接给它赋值。但是,如果一定要给它赋上一定的值,是可以的。

如下例子:

#include<stdio.h>  int main()  {       int a=2;       int* const p;       int **p1=(int**)&p;       *p1=&a;       printf("%d",*p);       return 0;  }
经过上面的介绍,相信大家对指向常量的常指针的声明也不难写出吧。它的声明形式:cont int* const p;它就不用作过多的介绍了,指向常量的常指针就是指向常量的指针与常指针的复合了。

好了就说到这里吧。
分享到:
评论

相关推荐

    深入理解const 与指针

    深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p

    有关const的理解和用法

    有关const的理解和用法,建议大家收藏,不错

    const的理解和用法

    网上搜集的关于const指针的用法介绍,概念,具体用法以及一些注意事项,比较全面,欢迎交流指正

    const的使用也是c语言中一个比较微妙的地方

    const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。

    ConST976说明书--20160429V01.pdf

    本手册适用于本北京康斯特仪表科技股份有限公司设计生产的 ConST976 并行多通道压力数据采集装置,为方便用户熟悉、正确使用本产品而...本手册使用中文编写,如果对不同语言版本的说明书的理解有不同,以中文版的为准。

    虚函数与const指针

    主要包括虚函数的概念以及对于const指针的区分,非常清楚明了,希望能帮助大家便于理解。

    理解复杂的CC++声明 const, typedef , 函数指针

    理解复杂的CC++声明 const, typedef , 函数指针

    C++中const关键字用法详解及实例和源码下载

    现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲解了一些知识,后来在网上面搜了关于const的关键字的讲解,但是搜到的内容和书上面讲解的内容有着非常让人疑惑的东西,看看下面的...

    c++中关键字const的用法详解

    本文档详细介绍了C++中关键字const的用法,并给出了具体的示例来帮助读者理解

    The Story of Const

    介绍了const的实质,对于理解const很有帮助的

    C的关键字——const的理解和用法

    本文主要介绍了关于C的关键字——const的理解和用法。

    extern、static修饰变量的使用及define和const区别

    extern、static修饰变量的使用及define和const区别可结合博客http://blog.csdn.net/error/404.html?from=http%3a%2f%2fblog.csdn.net%2faiyang10%2farticle%2fdetails%2f49448591理解

    laihuamin#JS-total#ES6系列——let和const深入理解1

    前言在ES6中多了两个变量定义的操作符——let和const,在现在项目中,ES6已经是不可获缺,我打算在掘金上整理一套ES6的系列,会收集常用的知识点,喜欢的

    浅析c++ 中const关键字

    另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。 define与const的区别 1.define作用在预处理时,是简单地字符替换 2. const作用在编译时,具有类型检查的功能 3. const必须...

    const yongfa

    让你不再害怕const前言:复杂类型说明要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有...

    const c c++

    const是一个C和C++语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助

    const的作用

    使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。另外CONST在其他编程语言中也有出现,如C++、PHP5、C#.net、HC08 C。

    详细分析c++ const 指针与指向const的指针

    主要介绍了c++ const 指针与指向const的指针的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    关于C的关键字——const的理解和用法

    今天自己写成一篇小总结。如果是初学者,建议好好看一下,相信帮助比较大;如果是高手,请不吝赐教!

    C语言的那些小秘密之const修饰符

    或许还有不少人对于const修饰符理解的并不深刻,都只是停留在一个比较浅的层面上,仅仅是在读别人代码的时候看到了const修饰符的使用,自己的写代码的过中从未使用过,所以自然对于const修饰符比较陌生。那么到底...

Global site tag (gtag.js) - Google Analytics