最近在学习引用,有一些学习心得,记录如下:

1:引用是变量的别名

int a;

int b&=a;

要注意引用只有声明,而没有定义,并且引用必须在声明的时候进行初始化,一旦与某个变量关联起来,就将一直效忠于它。

2:引用的实质是指针

其中引用出现在C++中的理由,也是为了在一定程度上回避一下C语言中的指针问题。

引用相当于  常指针

int  a;

int &b=a;

//实际上是下述代码的伪装表示

int  *  const  pt= &a;

其中引用 b扮演的角色与表达式 *pt 是完全相同的。

3:说完了第二个问题就该说说常指针和指向常量的指针的区别了

先说一下概念  常指针  是指针指向的位置不能改变,也就是指针的指只能赋值一次。指向常量的指针 是指指针指向的对象不能改变,也就是说不能通过这个指针来改变指向对象的指,而指针自身的指向是可以改变的。

再说一下具体的形式

//以下两种为指向常亮的指针
const char *p;
char const *p;
//以下为常指针
char * const p;

区分就是看  * 和const 谁离指针变量名 p近,如果是  * 离的近,表示该指针指向一个常量。

反过来如果是 const离的近,则代表是一个常指针。

4:

const int n=5;

int const n=5;

完全等价。

另:指向常亮的指针不能进行左值操作

常指针和指向常量的指针相关推荐

  1. [C++基础]018_常量指针和指向常量的指针

    先来看一下什么是常量指针,什么是指向常量的指针吧! 1. 常量指针定义 1 int * const ptr = new int(); 2. 指向常量的指针 1 const int* ptr; 上面已经 ...

  2. const指针和指向常量的指针

    先看下面六种写法: 1. const int p;2. const int *p;3. int const* p;4. int * const p;5. const int * const p;6. ...

  3. 常指针、指向常量的指针、指向常量的常指针

    三者的区分 简而言之- 常指针:地址不可变,内容可变 指向常量的指针:地址可变,内容不可变 指向常量的常指针:地址不可变,内容不可变 样例 代码如下: #include <iostream> ...

  4. 常量指针与指向常量的指针

    这两个概念经常很容易混淆,下面简单分析一下 1.常量指针: int * const p   : const p 就是一个常量,然后再看*,可以看出是一个常量类型的指针,即int类型的常量指针.不能修改 ...

  5. 【转】const int *p和int * const p的区别(常量指针与指向常量的指针)

    [转]作者:xwdreamer   出处:http://www.cnblogs.com/xwdreamer 对于指针和常量,有以下三种形式都是正确的: const char * myPtr = &am ...

  6. 辨析 const指针 和 指向常量的指针

    辨析以下几种指针p的定义. int tmp = 5;int *p = &tmp; const int *p = &tmp; int const* p = &tmp; int * ...

  7. 常量指针、指针常量以及指向常量的指针常量

    三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开.  一)常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量 ...

  8. char * const p; //常量指针,p的值不可以修改  char const * p;//指向常量的指针,指向的常量值不可以改 const char *p; //和char const *p

    char * const p; //常量指针,p的值不可以修改 char const * p://指向常量的指针,指向的常量值不可以改 const char *p: //和char const *p

  9. 彻底理解——指针常量和常量指针、指向常量的常指针

    前言   在汉语中,定语一般都放在中心词的前面,像C语言和C++语言这种技术性语言,更是如此.   所以定语重要还是中心词重要,肯定是中心词重要.   如:美丽的女孩 美丽的是定语 女孩是中心词    ...

最新文章

  1. 毕业设计(3)基于MicroPython的篮球计时计分器模型的设计与实现
  2. 基于Mahout的电影推荐系统
  3. linux常用网络诊断命令,linux网络常用诊断工具
  4. 【Tiny4412】Tiny4412烧写uboot脚本分析
  5. Python while循环 - Python零基础入门教程
  6. (3)评价模型-分析总和
  7. Java 数据库编程专栏 目录
  8. Android学习路线指南-------任玉刚
  9. PCB中负片层的含义
  10. linux系统清理命令行,快速解决Win10系统升级助手打不开无法运行的方法
  11. DAP-seq助力胡杨耐盐机制的研究Populus euphratica WRKY1 binds the promoter of H+-ATPase gene to enhance gene expr
  12. 恩,今天把git和sublime结合了一下。。然后看了下《西部世界》
  13. outlook配置阿里企业邮箱
  14. Python数据分析学习总结——替代Matlab
  15. maplesim matlab,MapleSim 2020
  16. Zotero中文文献管理
  17. python热图_Python-Seaborn热图绘制的实现方法
  18. 【网络工程师笔记】——防火墙配置
  19. 服务器响应未知 请再试一次,PS4 错误代码解决方法
  20. XeTex字体字号对照表

热门文章

  1. 【玩转嵌入式屏幕显示】(三)TFT-LCD屏幕打点 + 画线 + 画矩形 + 画圆Bresenham算法实现(基于打点函数,算法可移植到任何屏幕的驱动程序之上)
  2. 利用循环输出如下图形
  3. 【POI2005】SZA-Template(KMP)
  4. 如何从外网穿透到内网
  5. 手机软键盘的发送按键和确认按键调用方法
  6. 【笔记】H.265/HEVC 视频编码(四)——预测编码
  7. db2 hadr 起停顺序_电机顺序启停问题
  8. 智能未来:聚焦2018世界人工智能大会
  9. 如何查看网易云笔记自己曾经使用过的设备
  10. selenium+python 的微博自动转赞评功能实现