C++中引用与指针的区别(详细介绍)
转载:http://www.cnblogs.com/tracylee/archive/2012/12/04/2801519.html
void Func1(int x) { x = x + 10; } int n = 0; Func1(n); cout << “n = ” << n << endl;// n = 0 |
void Func2(int *x) { (* x) = (* x) + 10; } ⋯ int n = 0; Func2(&n); cout << “n = ” << n << endl; // n = 10 |
void Func3(int &x) { x = x + 10; } ⋯ int n = 0; Func3(n); cout << “n = ” << n << endl; // n = 10 |
string& rs; // 错误,引用必须被初始化
string s("xyzzy"); string& rs = s; // 正确,rs指向s 指针没有这样的限制。 string *ps; // 未初始化的指针 // 合法但危险 |
void printDouble(const double& rd) { cout << rd; // 不需要测试rd,它 } // 肯定指向一个double值 相反,指针则应该总是被测试,防止其为空: void printDouble(const double *pd) { if (pd) { // 检查是否为NULL |
string s1("Nancy"); string s2("Clancy"); string& rs = s1; // rs 引用 s1 string *ps = &s1; // ps 指向 s1 rs = s2; // rs 仍旧引用s1, // 但是 s1的值现在是 // "Clancy" ps = &s2; // ps 现在指向 s2; // s1 没有改变 |
vector<int> v(10); // 建立整形向量(vector),大小为10; // 向量是一个在标准C库中的一个模板(见条款35) v[5] = 10; // 这个被赋值的目标对象就是操作符[]返回的值 如果操作符[]返回一个指针,那么后一个语句就得这样写: *v[5] = 10; |
void func(int* p, int&r); int a = 1; int b = 1; func(&a,b); |
C++中引用与指针的区别(详细介绍)相关推荐
- 浅谈C++中引用和指针的区别
之前我们介绍了什么是引用,错过的小伙伴们可以戳这里 ↓ https://blog.csdn.net/Sun_Life_/article/details/89304920 既然引用底层是用指针形式实现的 ...
- c++中引用和指针的区别
1.指针是一个实体,需要分配内存空间.引用只是变量的别名, 不需要分配内存空间. 2.引用在定义的时候必须进行初始化,并且不能够改变.指针在 定义的时候不一定要初始化,并且指向的空间可变.引用的初始 ...
- C++中的引用与指针的区别
C++中的引用与指针的区别 指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象 ...
- 引用和指针的区别?传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?
引用和指针的区别 (1) 引用在创建的同时必须初始化,即引用到一个有效的对象:而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2) 不存在NULL引用,引用必须与合法的存储单元关联 ...
- 2-5:C++快速入门之引用,引用和指针的区别
文章目录 (1)引用的概念 (2)引用的特点 (3)常引用 (4)引用的应用场景 A:做参数 B:做返回值 (5)引用和指针 在第一次学习C语言指针时,许多教材上都会给出一个交换两个变量值的例子,开始 ...
- c++中别名和指针*的区别
c++中别名&和指针*的区别 int n;int &m = n; 在C++中,多了一个C语言没有的引用声明符&,如上,m就是n的引用,简单的说m就是n的别名,对m的任何操作,对 ...
- C++ 引用详解(引用的特点,引用与指针的区别,引用的其他使用)
目录 引用 一.引入 二.C++中较为麻烦的运算符 三.引用的定义 四.引用的特点 五.对比指针与引用 六.引用与指针的区别(重点) 1.语法层面的区别 2.汇编层面的区别 七.引用的其他使用 引用 ...
- 【C语言】引用和指针的区别?
首先解释在C语言中,什么是引用: 1.引用概念 引用是别名,必须在声明的时候初始化.即:是指一个已定义变量的别名.(一个内存空间,有两个名字都可以操作) 引用:在函数调用时,是变量的别名,不可以单独 ...
- php div行内块元素,行内元素与块级元素的区别详细介绍
首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block).行内(inline). 块级元素:(以下列举比较常用的块级元素,详 ...
最新文章
- Realm数据库拾遗
- redis为什么是单线程_面试官:Redis单线程为什么执行效率这么高?
- FMS4.5( Adobe Flash Media Server4.5)流媒体服务器搭建
- 第五章:数据库交换开发篇
- Stack Overflow 2016 最新架构探秘
- Xcode 自带单元测试
- Java常量池理解与总结
- Enews博客/CMS/双模式主题源码
- 回溯法采用的搜索策略_急性阑尾炎最典型的症状为:
- 《RabbitMQ 实战指南》第一章 RabbitMQ 简介
- 任何时间都是送给我们的最好礼物
- Javascript基础之-强制类型转换(三)
- Nginx中break和last的区别
- 牛客练习赛22C Bitset
- Button的UseSubmitBehavior屬性
- 关于csdn打不开的问题
- 【Windows】VMware虚拟机安装Windows 10 教程
- 未明学院:被腾讯群面虐完后,我找到了未来的方向…
- 百度搜索 屏蔽百家号
- c语言答案-贾宗璞 许合利,C语言习题答案贾宗璞许合利较全-.doc-资源下载在线文库www.lddoc.cn...
热门文章
- mysql5.6与mysql5.5不同
- Silverlight + WCF异步调用 例子
- java.util.hashmap_java.util.HashMap中的无限循环
- python 怎么算l2范数_数学推导+纯Python实现机器学习算法13:Lasso回归
- Java排序算快速排序_Java排序算法 [快速排序]
- linux shell 宏定义_linux内核修炼之系统调用
- mysql集群跨地域同步部署_跨地域冗余 - 跨数据中心部署方案 - 《TiDB v2.1 用户文档》 - 书栈网 · BookStack...
- 索引和未索引执行计划的比较_详解Oracle复合索引+实例说明
- python展开 c函数中的宏预处理_C中的预处理宏
- 如何利用FFT(基2时间以及基2频率)信号流图求序列的DFT