一.引用

引用是一种复合类型,引用分为左值引用和右值引用,其中右值引用时C++11提出来的,

常说的引用其意为左值引用。注意:引用不是对象,它是一个对象(变量)的别名,不能改变引用的对象,故必须在初始化的确定引用的对象。

(1)引用(左值引用)

引用的类型必须和被引用变量的类型一致,但有两种例外情况。

①const引用

double dval = 3.14;
Const int &r1 = dval;

其内部转化为:

Const int temp = dval;
Const int &r1 = temp;

temp是一个临时量,即是一个未命名的对象。所以如果r1不是常量引用,那么即是允许通过引用改变常量了,故C++语言将它归为非法,编译报错。

②C++Primer p534 // 看到再完善

(2)右值引用 // 看到再完善

C++Primer p471

二. 指针

关于const与constexpr见下一篇文章详细介绍。

(1)指针和const

如:

Const int * const p; // 这里的P是一个常量指针(右边const确定),指向整形常量(左边const确定)。

(2)指针和constexpr

如:

Constexpr int *p1; // 这里的p1是一个指向整形常量指针。
Constexpr const int *p2; //这里的p2是指向整形常量的常量指针。

(3)指针和类型别名

如:

typedef char *pstring;
Const pstring ctrs = 0;//cstr是指向char的常量指针
Const char * str = 0; // str是指向const char的指针
Const pstring *ps; // ps是一个指针,它的对象是指向char的常量指针

C++Primer学习之一引用和指针相关推荐

  1. [C++再学习系列] 引用和指针

    下面是网上关于引用和指针区别的常见答案: 引用和指针有如下三种区别: 1 引用必须在声明时初始化,而指针不用: 2 NULL不能引用,而指针可指向NULL: 3 引用一旦声明,引用的对象不能改变(但对 ...

  2. 《C++ Primer》引用和指针

    学习C++的时候,我越来越感觉如果没有真正学会引用和指针,那么其他的部分就非常难以理解.因此,对于C++来说,引用和指针是绝对基础而又重要的. 引用 我们可以想象一下,对门王奶奶养了一只加菲猫,王奶奶 ...

  3. 2020-09-25C++学习笔记引用2:二级指针形参与指针形参的使用方法和区别重难点,主看综合代码(1、指针形参2、引用形参3、二级指针形参4、指针引用形参)

    2020-09-25C++学习笔记引用2:二级指针形参与指针引用搭配做形参的使用方法区别重难点,注意事项主看综合代码(1.指针形参2.引用形参3.二级指针形参4.指针引用形参) 1.指针引用 #inc ...

  4. (4)风色从零单排《C++ Primer》 变量,引用,指针

    从零单排<C++ Primer> --(4)变量,引用,指针   变量的初始化 所谓变量的初始化,指在创建变量的同时给予值. 初始化方法: int units_sold = 0; int ...

  5. C++学习——引用和指针

    文章目录 1. 引用和指针的区别? 2. C++中的指针参数传递和引用参数传递 1. 引用和指针的区别? 指针是一个实体,需要分配内存空间.引用只是变量的别名,不需要分配内存空间. #include& ...

  6. C++ Primer 学习笔记(第四章:表达式)

    2019独角兽企业重金招聘Python工程师标准>>> ##C++ Primer 学习笔记(第四章:表达式) [TOC] ###4.1 基础 左值和右值: 当一个对象被用作右值的时候 ...

  7. 如何正确的通过 C++ Primer 学习 C++?(转自知乎)

    作者:dawnmist 链接:https://www.zhihu.com/question/32087709/answer/54936403 来源:知乎 著作权归作者所有,转载请联系作者获得授权. 个 ...

  8. c++primer学习笔记

    c++ primer 5e学习笔记 第1章 1.标准库 类型和函数的集合,每个c++编译器都必须支持. 2.()运算符:调用运算符.跟随在函数名后,起调用函数的作用 第2章 1.p32:char在一些 ...

  9. 【C++ Primer 学习笔记】: 容器和算法之【泛型算法】

    本系列博客主要是在学习 C++ Primer 时的一些总结和笔记. [C++ Primer 学习笔记]: 容器和算法之[泛型算法] 本文地址:http://blog.csdn.net/shanglia ...

最新文章

  1. 用漫画了解 Linux 内核到底长啥样
  2. 15个可交互的真实房屋场景,Silvio/李飞飞组开源大型室内场景的模拟环境iGibson...
  3. IDT 信息设计工具使用
  4. 预加载显示图片的艺术
  5. MySQL--字符集
  6. androidstudio build tools安装_Android Studio4.0 安装及配置
  7. 2019年,50万大数据DT粉丝都爱的10本书
  8. java重定向url怎么写_Java:如何从重定向的URL中读取内容?
  9. 一波情人节海报温暖来袭,注定与众不同
  10. python做的大型游戏_Python有做大型游戏的潜力吗?
  11. 几行 python 代码合成 gif / 微信表情~与恶意合成软件说再见【文末附代码】
  12. 机器学习——卷积神经网络计算
  13. Python函数参数类型*、**的区别
  14. ASCLL码对照表02(可显示字符)
  15. MATLAB学习之均值滤波
  16. arch模型的思路_ARCH模型介绍.ppt
  17. dango mysql 的问题
  18. css怎么随着鼠标移动,利用CSS sprites制作随着鼠标移动的动画背景
  19. Android SnackBar
  20. MapReduce系列之MapReduce的输出

热门文章

  1. leetcode combinations java_[LeetCode][Java] Combinations
  2. html里面Meta标签的使用
  3. esc指令检查打印状态_Z.115 胶片自助打印设备
  4. java 水印乱码,linux java程序加水印及中文乱码方案
  5. mysql have_mysql having的用法
  6. pyqt5 获取Qlabel中的图片并对其进行处理(包括Qimage转换为Mat)
  7. python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别
  8. python_文件操作代码实例
  9. vi - a linux command
  10. javascript的事件冒泡,阻止事件冒泡和事件委托, 事件委托是事件冒泡的一个应用。...