王老师C++学习笔记 学习笔记 笔记…

1 二级指针可以操控一级指针,一级指针可以操控"零级指针"(就是常量啦), 但是能在"平级"解决的问题就不要用"上级"去解决,能用引用的地方就不要用指针.
2 引用的引用无 指针的指针有 (???)
int *p;
int **pp=&p;
int ***ppp=&pp;
int ****pppp=&ppp;
…子子孙孙wqky 这就是指针的指针有

int a;
int &ra=a;
int &rb=ra;
int &rc=rb;// 平行关系
对引用再次取引用可以 相当于给变量
取个另一名字 但是仍然是平行关系

但是对引用的引用 int & &rra=ra 就是错误的 就像二级指针操控一级指针 本着能用平行关系解决的问题 就不用"领导"去解决 所以在c++中 int & &rra=ra 引用的引用 会报错 其目的就是避免了产生引用的引用的引用 否则就会和C指针一样。

一般来说 int * &是对的 int & *是错的 哈哈
3指针的数组有 引用的数组无
指针的数组有 就是这个
char *p="i love ";
char *q=“china”;
char *buf[]={p,q}; //指针数组
p ,q 是char * 所以接待char *的自然是char ** 因此 buf是个二级指针
看第2个笔记 上面写着指针的指针有 所以自然就有了

int a ,b,c;

int &pp[]={a,b,c}; //错误 编译不通过 引用的数组无

因为a b c 变成了引用类型 int & 接到的pp是个int & * 但是没有引用的引用 自然而然就是错的

4

int arr[10];
int * const &parr=arr;
arr 是Int *类型 并且引用类型Parr 要加Const 因为数组的首地址本来就不是能动的 呀 (大学老师: 数组名是数组的首地址) 要是不加const编译器不让通过
看如下代码
int arr[10]={1,2,3,4,5,6,7,8,9,0};
int * const &parr=arr;
for(int i=0;i<10;i++)
{
cout<<parr[i]<<endl;
}
输出 1.2…0

如果arr是一个整体
对这个整体进行引用
⇒ int [10] &parr =arr ⇒ int &parr[10]=arr 看第三个笔记 就变成了 引用的数组 引用的数组是没有的 因此我们这样改一下

==> int (&parr)[10]=arr 这样就能编译通过了

看如下代码

int (&parr)[10]=arr;

cout<<sizeof(parr)<<endl;//40

cout<<sizeof(arr)<<endl;//40

引用提高 提高 啦啦啦啦啦啦啦啦啦啦了相关推荐

  1. C++PrimerPlus 学习笔记 | 第八章 函数探幽 | 2.引用参数

    引用变量 引用变量的实现 在C++中允许使用 & 符号来声明引用 int a = 1; int & b = a; // b 是 a 的别名且 &b == &a 引用在声 ...

  2. 《C++详解》(二)初入C++最重要的知识点:引用 操作符

    目录 零,前言 一,引用的概念 二,引用的作用 1,引用做返回值 2,引用做参数 ​三,const常引用 四,引用的原理 五,引用与指针的区别 零,前言 在大学课程C++或者数据结构课本上很多同学发现 ...

  3. C++面试 左值、右值、左值引用、右值引用

    1.左值和右值 左值(left-values),缩写:lvalues  ,located value 可定位值,其含义是可以明确其存放地址的值,更确切说对其的使用是基于地址 右值(right-valu ...

  4. [虎头虎脑,没有烦恼]c++内存四区,new,引用,函数

    ⭐️大一小何,还在学习当中,欢迎交流指正~ 新年快乐,愿万事胜意,不负韶华. 目录 代码区 全局区 堆区 栈区 new运算符 引用 引用的基本使用 引用的的注意事项 引用做函数参数 值传递 地址传递 ...

  5. 提高C++性能的编程技术笔记:引用计数+测试代码

    引用计数(reference counting):基本思想是将销毁对象的职责从客户端代码转移到对象本身.对象跟踪记录自身当前被引用的数目,在引用计数达到零时自行销毁.换句话说,对象不再被使用时自行销毁 ...

  6. 【黑马程序员 C++教程从0到1入门编程】【笔记3】C++核心编程(内存分区模型、引用、函数提高)

    黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 文章目录 1 内存分区模型 1.1 程序运行前 1.2 程序运行后(手动开辟内存:c语言malloc,c++new) 1.3 new操作 ...

  7. 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用

    贺老师教学链接  C语言及程序设计提高 本课讲解 输入输出二维数组元素 #include int main() { int s[3][5], i, j; printf("Input 3*5 ...

  8. 提高C++代码质量 - [083]不要返回局部变量的引用

    概述:不要返回局部变量的引用,也不要返回new生成的对象的引用. 写一个复数类CComplex,支持复数的加法,代码如下: class CComplex { public: CComplex(floa ...

  9. 提高Java表达能力!不落伍一起掌握Java8中Lambda表达式、函数式接口及方法构造器数组引用

    文章目录 函数式接口概述 函数式接口示例 内置函数式接口 Lambda简述 Lambda语法 方法引用 构造器引用 数组引用 函数式接口概述 只包含一个抽象方法的接口,称为函数式接口. 可以通过 La ...

  10. c6011取消对null指针的引用_C/C++学习笔记——C提高:指针强化

    指针是一种数据类型 指针变量 指针是一种数据类型,占用内存空间,用来保存内存地址. void test01(){ int* p1 = 0x1234; int*** p2 = 0x1111; print ...

最新文章

  1. Machine Learning | 机器学习简介
  2. 一文读懂BERT 历史背景 代码github
  3. 零基础学python 明日科技-明日科技 - 课程
  4. (转)个例子让你了解Java反射机制
  5. 【阿里云大学课程】前端必知——HTML5新特性完整视频教程(音频、视频、画布、web存储、动画……)...
  6. pep8 python 编码规范_「原创」「python自学笔记」python编码规范
  7. amd一点也不yes_最不值得买的高端显卡!RTX3080从真香变成了鸡肋?
  8. 关于WCF、WebAPI、WebService之间的区别总结 分布式通信技术
  9. 一张纸一幅图,竟然提高了10倍的学习和工作效率!?
  10. camera---(3)双camera 生态链
  11. Linux_c++ TCP套接字编程函数
  12. 了解人工智能与智能系统中的先驱人物
  13. android opencv 识别水果,opencv – 在一盘水果中检测香蕉或苹果,成功率 90%. (见图)...
  14. 屌炸天的3D引擎OpenCASCADE的用法及案例
  15. Everything Toolbar - 文件搜索神器everything的增强插件
  16. a113 智能音箱芯片方案_主流智能音箱全拆解,内部分毫必见
  17. Barracudanbsp;VSnbsp;antelope
  18. 颜色类中英文词汇大全(3)
  19. Mybatis (总结完整)
  20. 为什么 JSON 不支持注释?

热门文章

  1. Java核心技术(进阶)
  2. 刀口法测mtf_基于特征像分析的光学镜头MTF测试方法的研究
  3. 如何制作ANE+Android以及ANE开发中可能遇到的坑
  4. Skype无法显示登录界面
  5. IM即时通讯聊天软件1.0
  6. 机器人商用或工业版控制器(含ROS和SLAM等)2022 部分
  7. [接口测试]POST请求提交数据的三种方式及Postman实现
  8. JAVA-day09-多线程
  9. Redis学习之Master/Salve十一
  10. linux下swp文件