• [C++]指针与引用(定义辨析)


    1.定义: 
       1.1 &-----取地址运算符
            功能:返变量的内存地址
           Eg:int *p,m;  定义p为指向int类型变量的指针,同时定义变量m
                m = 200;   将数值200赋值给变量m
                p = &m;    将变量m的地址赋给指针变量p
                -------------------------------------
                此时:  p = 一个内存地址 *p = m
       1.2 *-----间接访问运算符
             功能:访问指针指向的变量
     
             Eg:int *p,m = 200,n;
                  p = &m;    p指向整型变量m
                  n = *p;    将p指向的变量m取出,赋值给变量n
                *p = 100   将100赋值给变量p所指向的变量m 
    ---------------------------------------------------------------
    形如:指针变量 *p
         *p  取出指针变量p所指向地址的值    (与变量m等价)
      p  指针变量指向的地址                   (与变量&m等价)
      &p   指针变量p的地址     
    ---------------------------------------------------------------
    形如:变量  m
          m   一个常量值或无值                      (与指针变量*p等价)
    &m  m的地址                                     (与指针变量p等价)   
      *m  无意义,会编译失败 (同理:&(*m)也会编译失败) 
             
    Eg:*(&m) = m ;   &(*m)   编译失败无意义 
    ---------------------------------------------------------------
    形如:引用变量 &r      //用&符号来说明对变量的引用 
         r    被引用的变量的值
         &r  被引用变量的地址 
    *r   无意义,编译失败 
         
     Eg:
      int i,&r = i;
      r +=10;
     -------------
    Result: i+=10;//对引用变量r的操作就是对原被引用变量的操作  
    ---------------------------------------------------------------
     

    需补充:
    右值引用  Type&& 
      设X为任何一种数据类型,则定义X&&是到数据类型X的右值引用(rvalue reference to X)。传统的引用类型X&被称为左值引用(lvalue reference to X)。例如:

                        int i;
                        int &j=i; //传统的左值引用数据类型的变量并初始化
                        int &&k=std::move(i); //定义一个右值引用数据类型的变量并初始化。
                        std::move定义于<utility>

  • 相关阅读:
    苹果开发者账号证书、授权配置文件设置流程
    JQuery 总结(1) 选择器的使用
    PC和移动端自动识别
    前端获取ip的接口
    AJAX 跨域解决办法
    linux
    复制剪切板实现
    css animation 制作打开动画效果
    弹出层播放视频
    盛世龙图项目总结
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/7155256.html
Copyright © 2020-2023  润新知