• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C/C++中指针和引用之相关问题深入研究

C/C++中指针和引用之相关问题深入研究

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c c++ c#区别,c和c++的区别,c语言和c++有什么区别,c/c++,c语言与c++的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、基本知识
指针和引用的声明方式:
声明指针: char* pc;
声明引用: char c = 'A'
   char& rc = c;

它们的区别:
①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以理解为:指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变。

②从内存分配上看,程序为指针变量分配内存区域,而不为引用分配内存区域,因为引用声明时必须初始化,从而指向一个已经存在的对象。引用不能指向空值。

③从编译上看,程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。这是使用指针不安全而使用引用安全的主要原因。从某种意义上来说引用可以被认为是不能改变的指针。

④不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针的要高。因为在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,防止其为空。

⑤理论上,对于指针的级数没有限制,但是引用只能是一级。

如下:

二、作为参数传递
利用引用的这个特性,可以用它作为函数的传出参数。如程序3:
#include <iostream

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C/C++ 中堆和栈及静态数据区详解
  • C/C++中运算符的优先级、运算符的结合性详解
  • C/C++ 中sizeof('a')对比详细介绍
  • C/C++中的typedef和#define详解
  • C/C++中宏定义(#define)
  • C/C++函数参数传递机制详解及实例
  • C/C++ 公有继承、保护继承和私有继承的对比详解
  • C/C++静态类和this指针详解及实例代码
  • C/C++中提高查找速度的小技巧
  • C/C++ ip地址与int类型的转换实例详解

相关文章

  • 2017-05-28MFC实现在文件尾追加数据的方法
  • 2017-05-28如何求连续几个数之和的最大值
  • 2017-05-28C实现的非阻塞方式命令行端口扫描器源码
  • 2017-05-28C语言 实现归并排序算法
  • 2017-05-28解读C++编程中派生类的构成和创建
  • 2017-05-28C++ 中重载和运算符重载加号实现矩阵相加实例代码
  • 2017-05-28c++中的4种类型转化方式详细解析
  • 2017-05-28使用dc画笔画矩形、直线与椭圆示例
  • 2017-05-28C++语言实现hash表详解及实例代码
  • 2017-05-28利用C语言的Cairo图形库绘制太极图实例教程

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • c++获取进程信息列表和进程所调用的dll列表
    • Cocos2d-x中使用CCScrollView来实现关卡选择实例
    • 非常经典的C语言趣味题目
    • 怎么用C++提取任意一张图片的特征(从内存读取数据)
    • C++设计模式之单例模式
    • 详解C++中的指针、数组指针与函数指针
    • 详解C++中常量的类型与定义
    • 关于win32 gettimeofday替代方案
    • C/C++ 宏详细解析
    • C++实现简单的扫雷游戏(控制台版)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有