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

     

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

  • 相关阅读:
    全局混入mixins 阅读代码时未看到数据从哪里来?全局混入(新建组件文件(复用)导入全局注册))
    【Linux】进程间通信(匿名管道、命名管道、共享内存等,包含代码示例)
    DevC++的调试方法
    Webshell详解
    How to config secured and stable Jenkins connection
    redis事务、乐观锁和悲观锁以及秒杀测试案例
    三、lock类的编写与解析 —— TinyWebServer
    ChatGPT Plus暂停注册,用户激增压力太大!
    Hafnium之S-EL0分区支持
    有点意思 | 元宇宙×BIM大潮来袭,对智慧城市有什么影响?
  • 原文地址:https://www.cnblogs.com/zhongmu/p/16889088.html