关于指针和引用一直是学习C++的同学们争论的焦点,什么时候用指针,什么时候用引用,还有怎么引用数组,这么用指针访问数组,以及初始化的问题。

不过有一些文章我在很早就已经写过,但是由于当时时间不充分,自己也都是随性写的,可以参看以前我的一个文章:http://blog.csdn.net/pbymw8iwm/article/details/8555197

这里就详细说一下:

1.关于引用和指针的初始化

首先没有空引用,一个引用必须代表某个对象,如果你有一个变量,目的用来指向领一个对象,但是它有可能不指向任何对象。

程序为指针分配内存空间,但是引用不需要分配内存空间。

比如这样的例子,

int  a = 0;

int* p = NULL;

int& pref= *p;

p = &a;

上面的这段代码,相信你心里有数了,这个例子告诉我们指针可以被重复赋值,执行另外一个对象,但是引用却总是执行他最初获得的那个对象,所以第三行的代码你将会得到一个无效的引用,即使后来p已经指向了a的地址。

到这里就不得不再说一下指针和引用去访问数组了,并且分别用他们初始化数组的方式了:

int main() {int a[10]={1,2,3,4,5,6,7,8,9,0};int (*pa)[10] = &a;printf("%d",(*pa)[8]);
}

这个是对指针pa的初始化和通过指针对数组的访问

再议指针和引用的一些事情吧相关推荐

  1. C++:const的使用(普通常量、指针、引用)

    const声明的是常量,常量基本上只能读不能写.其实x也是能写的,但他只是在x初始化的时候完成了写操作. int main() {const int x=4;//x是const int型.在初始化时写 ...

  2. 【c++】30.为什么可以通过指针或引用实现多态,而不可以通过对象呢?

    目录 一.类对象的存储方式: 二.无论通过对象还是指针,能使用的方法只与它们静态类型有关. 三. 不同类型的指针有什么区别? 四. 指针与引用来实现多态 五.对象不能实现多态 引言: 在c++中司空见 ...

  3. C++指针和引用的区别

    从概念上讲.指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变. 而引用是一个别名,它在逻辑上不是独立的,它的存在具有 ...

  4. C++ 中为什么要有“ 指针” 和 “ 引用”

    推荐阅读 1.<C++语言的设计与演化> 2. <<more effective C++>> 1. 引言 1.1 对象: C++primer中, 对象的定义: 对象 ...

  5. 面试题——谈谈指针和引用的区别

    一.指针和引用的定义和性质区别: (1) 指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元,即指针是一个实体:而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名 ...

  6. go -- 指针和引用

    一.指针和引用的定义和性质区别: (1) 指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元,即指针是一个实体:而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名 ...

  7. C++指针与引用的区别

    (1)指针是一个变量,本身占有内存,内存中存储的是所指向对象的地址.引用是内存的别名. (2)指针可以通过解引用的方式,取出所指向内存中的值.引用没有解引用. (3)指针可以先定义,然后在后面初始化. ...

  8. C++的常量、指针、引用

    一.C语言的常量是可以通过地址进行修改的:而C++的常量是不可修改的,且在定义的时候必须初始化! 可引用常量的地址,但只是临时地址: const int a = 10 ; int *b = (int* ...

  9. 再议C#方法中的反射方式和委托方式

    再议C#方法中的反射方式和委托方式 我们将要谈到的是C#方法中的反射方式和委托方式,文中还将给出具体代码,以方便大家测试和实践. AD: 在开发过程中对静态方法的调用是通过类型名后面加个点而后是调用方 ...

最新文章

  1. 【OpenCV 4开发详解】漫水填充法
  2. UART的16倍频过采样和3倍频过采样
  3. linux同名文件没有自动替换,linux – bash脚本替换文件中出现的所有占位符
  4. java限制数字_是否存在将我的通用方法限制为数字类型的约束?
  5. Shell 脚本知识回顾 (三) —— 替换、运算符、字符串、数组
  6. Python高级——闭包与装饰器
  7. 在Linux-0.11中实现基于内核栈切换的进程切换
  8. 【报告分享】中国隐私计算产业发展报告(2020-2021).pdf(附下载连恶疾)
  9. 离线抓取域登录缓存hash(mscash)
  10. iOS下载文件,保存路径. 防止加到iCloud备份
  11. 谷歌在招什么样的人?
  12. SpringBoot系列(10):SpringBoot中的全局异常处理
  13. 如何搭建私人电子图书馆
  14. 【 React 】设置代码快捷键
  15. mysql存储引擎查看语句,在MySQL中,可以使用(??)语句查看MySQL服务器采用的默认存储引擎...
  16. windows Bat 批命令 教程
  17. ffmpeg编码x264
  18. ASP.NET Cache的一些总结
  19. Postfix邮件服务器搭建之虚拟用户配置
  20. 百度工具问题以下对URL规则的阐述,哪些是错误的

热门文章

  1. bbb 烧写脚本分析
  2. WINCE6开机进度条
  3. lombok有参构造注解_Java高效开发工具: Lombok
  4. 中职计算机属于专业课还是文化课,对中职计算机专业建设探讨.doc
  5. DDMMSS.SS转为DD
  6. 【转】DCMTK 开源库的学习笔记2:直接操作dcm文件中像素数据的尝试
  7. 【转】如何判断一个文本文件内容的编码格式 UTF-8 ? ANSI(GBK)
  8. php session 机制,Cookie、Session机制详解及PHP中Session处理
  9. oracle cogs 科目,请问R12中,Mtl_material_transaction中的 COGS Recognition记录是干啥的?
  10. 【CodeForces - 1051C 】Vasya and Multisets (模拟)