引用又称 别名,它可以最为对象的一个名字,但它既不是对象的指针,也不是对象的副本。
通过引用可以间接地操作对象,使用方式类似于指针,但不需要指针的语法。
使用规则:
1> 引用被创建的同时必须被初始化,(指针可以在任何时候被初始化
int a = 12;
int &b = a;//正确
int &c;//错误
2> 一旦引用被初始化,就不能改变引用的关系(指针可以随时改变所指的对象)
3> 引用的所有操作实际上都是应用在它所指的对象身上,包括取址操作符
4> 不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)
直接访问:按变量地址存取变量值
间接访问:通过变量地址的的变量去访问变量
指针:指针就是它的值表示内存地址的变量
如果两个指针都指向同一个数组中的元素,它们之间可以相减。
任何指针之间都可以进行比较,测试它们相等或不相等。
指针和引用的异同
相同点:
都是地址的概念,指针所指向的一块内存,它的内容是所指内存的地址,而引用则是某块内存的别名。
不同点:
1> 指针是一个实体,而引用是个别名
2> 引用只能在定义时初始化一次,之后不可改变,指针则可以;引用“从一而终”,指针“见异思迁“
3> 引用没有const,指针有const,有const的指针不可改变
4> 引用不可为空,而指针可以为空
5> Sizeof引用得到的是所指变量(对象)的大小,而sizeof得到的是指针本身的大小
6> 指针和引用的自增(++)运算意义不一样
7> 引用是类型安全的,而指针不是(引用比指针多了类型检查)
分享到:
相关推荐
C++引用&和指针在作为形参时的区别 int n; int &m = n; 在C++中,多了一个C语言没有的引用声明符&,如上,m就是n的引用,简单的说m就是n的别名,两者在内存中占同样的位置,不对m开辟新的内存空间,对m的任何操作,...
通过例子解析指针引用及动态内存分配觉得有用看好再下
本工程包括以下内容:(开发环境:VC6.0) 1.双重指针的用法实例; 2.引用的用法实例; 3.指针函数的用法实例; 4.区别指针数组与数组指针的用法实例; 5.迷途指针的用法实例;
本书以流行的面试题讲解为主要内容,介绍了C、C++语言基本概念,包括保留字、字符串、指针和引用、结构体、库函数等各个方面的基础知识,介绍了面向对象编程基本概念,包括如何实现继承、多态和封装等。还介绍了排序...
在C++中,可以说明指向类的数据成员和成员函数的指针。 指向数据成员的指针格式如下: <类型说明符><类名>::*<指针名> 指向成员函数的指针格式如下: <类型说明符>(<类名>::*<指针名>)(<参数表>) 例如,...
自己秋招根据面经和基础知识学习总结的知识点,主要内容包括但不限于:volatile关键字、sizeof & strlen、const的作用、enum、inline、delete[] 与 delete、多态的作用、C++与Python的区别、深拷贝与浅拷贝、extern ...
C/C++ 数组和指针及引用的区别 1.数组和指针的区别 (1)定义 数组是一个符号,不是变量,因而没有自己对应的存储空间。但是,指针是一个变量,里面存储的内容是另外一个变量的地址,因为是变量所以指针有自己的...
很不错的面试指南~~主要面试的经验~~c/c++基础 预处理 const static 引用 指针 字符串 c++继承多态 数据结构 链表 堆栈 排序关于智力测试
答:函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern "C"修饰的变 量和函数是按照C语言方式编译和连接的。由于编译后的名字不同,C++程序不能直接调 用C 函数。C++提供了一个C 连接交换指定符号...
C/C++语言编码规范 1 目录 2 1. 命名规则 4 1.1. 起个合适的名字 4 1.1.1. 类的名称(适用于C++) 4 ...1.9. 引用变量和返回引用函数的命名前缀(适用于C++) 7 1.10. 全局变量的命名前缀(适用于C/C++) 7
3.2 指针和引用的区别 3.3 构造函数能否为虚函数 3.4 C语言编译全过程 3.5 单例模式 3.5.1 如何实现单例模式 3.5.2 如何实现单例模式 3.6 返回“引用”的格式、好处、注意事项 3.7 指针的表示 3.8 拷贝构造函数的...
6.6 引用与指针的比较. 第7 章 内存管理 7.1 内存分配方式 7.2 常见的内存错误及其对策 7.3 指针与数组的对比 7.4 指针参数是如何传递内存的? 7.5 FREE 和DELETE 把指针怎么啦? 7.6 动态内存会被自动释放吗?. 7.7...
gSOAP编译器可以集成C/C++和Fortran代码(通过一个Fortran到C的接口),嵌入式系统,其他SOAP程序提供的实时软件的资源和信息;可以跨越多个操作系统,语言环境以及在防火墙后的不同组织。 gSOAP使编写web服务的...
C#调用C++DLL,C++DLL中的函数参数包含指针。 绝对可用。
C++中&和*的用法一直是非常让人头疼的难点,课本博客上讲这些知识点一般都是分开讲其用法的,没有详细的总结,导致我在这方面的知识结构格外混乱,在网上找到了一篇英文文章简单总结了这两个符号的一些用法,都是...
2:基本数据类型的指针和引用 3:结构体 4:结构体的指针和引用 5:函数指针和回调函数 6:字符串指针 7:输入一个数组 8:输出一个数组并释放空间 本资源包括三个工程: C++动态链接库; VC调用本地动态链接库; ...
C++ 中引用与指针的区别实例详解 引用是从C++才引入的,在C中不存在。为了搞清楚引用的概念,得先搞明白变量的定义及引用与变量的区别,变量的要素一共有两个:名称与空间。 引用不是变量,它仅仅是变量的别名,...
C/C++中swap功能的本质:通过传递变量地址(指针或引用)来交换变量地址中的值。 Java标榜当中对C/C++一个非常大的改进是:Java对程序猿屏蔽了变量地址的概念,降低指针误用。 在Java世界中函数
C++中的引用和指针 ★ 相同点: 1. 都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名(java中的引用其实也是别名的意思)。 ★ 区别: 1. 指针是一个实体,而引用仅是个别名;2. ...