• 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中的数据而不能修改。

     

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

  • 相关阅读:
    JVM堆内存转储
    数据分析-费米问题
    2023年USNews全美大学排名公布(附top300榜单)
    这些不知道,别说你熟悉 Spring
    单页应用(SPA)和多页应用(MPA)的区别和优缺点?
    Unity 2021 LTS / Unity 2022 LTS New Shader Graph Node 参考样本
    艾美捷SequENZ测序级改造型胰蛋白酶用途和技术说明
    Chapter5.6:频率响应法考研参考题
    Linux中sudo命令的添加和操作
    利用华为云ECS服务器搭建安防视频监控平台
  • 原文地址:https://www.cnblogs.com/zhongmu/p/16889088.html