码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 学习笔记:引用


    概念

    引用的作用是给一个变量起别名

    格式: type & 别名= 原名

    引用必须初始化,在初始化后不能改变
    int &b;b=a;错误 
    int& b = a; b=c;不是将b从a的别名变为c的别名
    而是将c的值赋给a 

    1. int a = 10;
    2. int& b = a;
    3. b = 20;//用别名改数据,原名也会改变
    4. //引用相当于一个指针
    5. cout << a << endl;

    a的值为20

    引用作函数参数

    简化指针修饰实参

    函数交换数据 必须用地址传递

    1. void myswap1(int& a, int& b)//用引用
    2. {
    3. int tep = a;
    4. a = b;
    5. b = tep;
    6. }
    7. void myswap2(int *a, int *b)//用指针
    8. {
    9. int tep = *a;
    10. *a = *b;
    11. *b = tep;
    12. }
    13. int main(void) {
    14. //引用作函数参数
    15. int a = 3, b = 5;
    16. myswap1(a, b);
    17. cout << a << endl << b;
    18. }

    指针和引用都能做到形参修饰实参,因为形参操作的是实参的内存

    引用可以理解为指针常量:能修改地址的数据但是不能改变指向

    引用作函数返回值 

    不要返回局部变量 的引用

    局部变量存于栈区,离开局部,栈区内存释放

     

     

    这样前两次输出10,test02()=1000后输出1000

    因为函数返回的是a的引用,修改引用的值就相当于修改原数据的值

    test02()=1000相当于a=1000 

    返回引用的函数可以作为左值

    引用的本质

    引用可以理解为指针常量:能修改地址的数据但是不能改变指向 

    int a=10;  int &ref=a;编译器自动转化为 int * const ref=a; 

    ref=20;  发现是引用,自动转化为 *ref=20;

    常量引用

     

     

     这样打印出a=10

     这样使用实参a的值也会被修改为1000

    如果在形参前加入const val 就不能再被修改,防止因修改形参误该实参 

    const使其变为只读

  • 相关阅读:
    前端获取资源的方式(ajax、fetch)及其区别
    Vue路由重复点击报错解决
    3万一5万新能源电动汽车,3万内的新能源电动轿车
    机器学习与数据分析
    DiagnosticSource DiagnosticListener 无侵入式分布式跟踪
    【数据结构与算法】--二叉树OJ题
    ansible下playbook安装httpd
    web - 前段三剑客
    永磁同步电机(PMSM)磁场定向控制(FOC)及Matlab/Simulink仿真分析
    MySQL(进阶)--索引
  • 原文地址:https://blog.csdn.net/qq_35660654/article/details/128119083
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号