mzc6838吧 关注:7贴子:239
  • 7回复贴,共1

const指针的使用方法

只看楼主收藏回复

一楼度娘!


IP属地:陕西来自Android客户端1楼2015-04-19 16:00回复
    const定义的指针变量是一个常量,可以用来固定某一变量的值,使之不能被改变,但是用法不同,所起到的作用也不尽相同…以下介绍


    IP属地:陕西来自Android客户端2楼2015-04-19 16:02
    回复
      1.指向常量的指针变量
      定义:const 类型名 * 指针变量名;
      这种定义方法不允许通过指针变量改变它指向的对象的值,也就是说,不能通过间接访问的方法来改变const定义的指针指向的变量值,但是可以改变const定义的指针所指向的变量。这样只是限制了通过指针变量改变它指向的对象的值,但是自行改变变量的值还是可以做到的,否则,应该用const int a;这样的语句来让a变量始终不变


      IP属地:陕西来自Android客户端3楼2015-04-19 16:08
      回复
        2.常指针
        定义: 类型名 * const 指针变量名;
        同楼上,但是又不一样,这种指针定义出来后,指针所指的指向就不能改变了,比如说我定义了一个指针这样定义的:int * const p = &a;现在如果有这么一条语句:p = &b;那么编译器就会报错,原因是常指针一旦定义了指向了之后,指向就不能改变了,这就说明了必须要在定义时初始化,并且指定它的指向!
        但是这毕竟是常指针啊!类比楼上,这样定义的指针却可以通过间接访问的方式来改变所指向的变量的值,解决方法同楼上


        IP属地:陕西来自Android客户端4楼2015-04-19 16:17
        回复
          3.指向常量的常指针
          定义:const 基本类型名 * 指针变量名;
          参考上面几楼的解释,这种指针就是说不可以改变指针的指向,并且不能通过间接访问来改变指向变量的值。个人感觉没什么用并且,如果要定义一个常量,这样还是不行……


          IP属地:陕西来自Android客户端5楼2015-04-19 16:21
          回复
            至于定义一个常量…有这么两种方法:
            1.#define
            这种方法据说是bug太多了,如果要单纯的定义一个常变量,这样加在头文件后面就行了,比如我要定义一个PI=3.1415926并且无法在操作中改变,就这样定义#define PI 3.1415926结尾不要分号,具体的define问题我还不是很了解……


            IP属地:陕西来自Android客户端6楼2015-04-19 16:25
            回复
              2.就是前几楼所说的const了,直接就这样定义(是在main函数中定义)const double PI = 3.1415926;
              结束…


              IP属地:陕西来自Android客户端7楼2015-04-19 16:26
              回复
                因为看书上打着星号所以觉得比较重要,来这备忘就当水贴!


                IP属地:陕西来自Android客户端8楼2015-04-19 16:28
                回复