• C++ 中指针常量、指向常量的指针、引用类型的常量


      命题1. 在C++ 中 const T a 与 T const a 是一样的, 表示a是一个T类型的常量。

      测试:

                              

      一、 形参定义为引用类型的常量

      在函数传参时,形参若定义为 const T& x ,则表示实参是一个引用类型,并且无法在这个函数中更改x的值。由命题1知,它等价于 T const& x

      在不同的书中可能会有不同的写法:

     

     

     

     

     

       测试:  

                        

     

                         

     

                         

     

                         

     

     

       二、指向常量的指针与指针类型的常量

      指向常量的指针定义为 const T *p , 表示 p是指向常量的指针,p也可以指向变量,但是通过p只能访问所指地址的值,而不能修改。

                            

     

                          

     

       

      指针常量的定义为 T *const p = &x , 指针常量也是指针,它可以指向一个变量,也可以修改变量的值,但由于它本身是常量,所以p只能指向一个地址,不能在初始化之后再指向其他地址。

                            

     

                                 

     

                            

     

                          

     

     

      注意: 1.  const *T p 是错误的

                              

     

                             

     

           2. T *const p 与 T const* p不等价,前者表示指针类型的常量,后者是指向常量的指针。(根据命题1,T const* p == const T* p 都是指向常量的指针)

        

       这里要对A中的数据进行复制,为了避免修改A中的数据,将形参定义为指向常量的指针,在函数中只能访问A中的数据而不能修改。

     

       好吧,写到这里我自己都要晕了,拜托各位设计语言的大佬还有写书的大佬还有出题的大佬手下留情啊!!!!

  • 相关阅读:
    ubuntu忘记mysql密码,怎么办
    数据结构——树状数组
    网络工程师干货:华为设备故障管理命令大全
    果断收藏|产品经理的职业发展路径是怎样的?
    京东按关键字搜索商品 API 返回值说明
    实现 DirectShow 虚拟 Camera 驱动
    关于Unity和android互调
    mysql数据库的四种隔离级别
    Flash的学习
    C# 问题记录
  • 原文地址:https://www.cnblogs.com/zhongmu/p/16889088.html