C++学习笔记30,指针的引用(2)
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/guang_jing/article/details/32910093
能够创建不论什么类型的引用,包含指针类型。
看一个简单的指针的引用的样例。比如:
#include <iostream>
using namespace std;
int main(){
    int x=10;
    int y=20;
    int z=30;
    int* ptx=&x;
    int* ptz=&z;
    //指针的引用,声明从右往左看。rtp与&结合,
    //剩余的符号和左边结合
    //引用一旦创建。不能改变其指向,仅仅能改变其值
    int* &rtp=ptx;
    cout<<"&x="<<&x<<endl;
    cout<<"&ptx="<<&ptx<<"           "<<"&rtp="<<rtp<<endl;
    cout<<"ptx="<<ptx<<"           "<<"rtp="<<rtp<<endl;
    cout<<"*ptx="<<*ptx<<"           "<<"*rtp="<<*rtp<<endl<<endl;
    ptx=&y;
    //ptx的值改变了,rtp的值也相对改变了
    //但其指向不变
    cout<<"&y="<<&y<<endl;
    cout<<"&ptx="<<ptx<<"           "<<"&rtp="<<rtp<<endl;
    cout<<"ptx="<<ptx<<"           "<<"rtp="<<rtp<<endl;
    cout<<"*ptx="<<*ptx<<"           "<<"*rtp="<<*rtp<<endl<<endl;
    rtp=ptz;
    //rtp的值改变了,ptx的值也相对改变了
    //但rtp指向不变
    cout<<"&ptz="<<&ptz<<endl;
    cout<<"&ptx="<<ptx<<"           "<<"&rtp="<<rtp<<endl;
    cout<<"ptx="<<ptx<<"           "<<"rtp="<<rtp<<endl;
    cout<<"*ptx="<<*ptx<<"           "<<"*rtp="<<*rtp<<endl<<endl;
}
输出结果:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE4NDQzNTIxNTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
这样看不明显,我们来简化一下样例,并通过调试来查看其变量地址以及值。
#include <iostream>
using namespace std;
int main(){
    int x=10;
    int y=20;
    int z=30;
    int* ptx=&x;
    int* ptz=&z;
    //指针的引用,声明从右往左看,rtp与&结合,
    //剩余的符号和左边结合
    //引用一旦创建,不能改变其指向。仅仅能改变其值
    int* &rtp=ptx;
    ptx=&y;
    //ptx的值改变了。rtp的值也相对改变了
    //但其指向不变
    rtp=ptz;
    //rtp的值改变了。ptx的值也相对改变了
    //但rtp指向不变
}
单步执行截图:(看ptx和rtp的值)
能够看到,rtp一直指向0x22fed8,而这个地址。正是&ptx的地址,从这里能够看出,引用一旦创建其指向不可改变,能改变的仅仅是其值(ptx的值)!
这就是指针的引用,指向引用的指针请看下一篇博文。
C++学习笔记30,指针的引用(2)的更多相关文章
- C语言学习笔记 (002) - C++中引用和指针的区别(转载)
		下面用通俗易懂的话来概述一下: 指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const.volatile等等.见下图 ... 
- C++学习笔记----3.2  C++引用在本质上是什么,它和指针到底有什么区别
		从概念上讲.指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变. 而引用是一个别名,它在逻辑上不是独立的,它的存在具有 ... 
- Swift 学习笔记 (三) 之循环引用浅析
		原创:转载请注明出处 110.自动引用计数实践 下面的例子展示了自动引用计数的工作机制.例子以一个简单的Person类开始,并定义了一个叫name的常量属性: class Person { l ... 
- c++学习笔记(c++中的引用)
		1.c++中的bool类型: 其实c语言中也有bool类型,如果是遵守c90标准的编译器(其实现在大量编译器都是c90标准的),对于bool类型的使用除了要使用头文件 stdbool.h外,与 ... 
- [原创]java WEB学习笔记30:Cookie Demo 之显示最近浏览的记录
		本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ... 
- 【C语言学习笔记】指针
		用来存放一个变量地址的变量就叫指针变量.指针变量也是有类型约束的,一般什么类型的指针指向什么类型的变量. 指针之所以叫变量,是因为它里面所存放的变量的地址也是不断变化的,指针是可以移动的. 定义格式: ... 
- C++学习笔记31,指向引用的指针(3)
		我们来看一个简单的指向引用的指针的样例. #include <iostream> using namespace std; int main(){ int x=10; int y=20; ... 
- C++学习笔记1_ 指针.引用
		1.引用的本质struct typeA{ int &a;}struct typeB{ int *a;}int main(void){ cout<<sizeof(struct typ ... 
- C++学习基础二——指针与引用的区别
		一.指针: (1)如果对指针进行解引用操作 赋值,改变的是指针所指向对象的值:(2)如果不对指针进行解引用操作 赋值,则改变的是指针本身的值:(3)const指针本身的值不能修改,但是const指针所 ... 
随机推荐
- <p>在我们的实际软件项目中,管理团队事实上比写代码或者实现一个客户的需求更为的有挑战性。由于编程实际上是和机器打交道,而和机器打交道,仅仅要你符合机器预定的逻辑,</p>
			在我们的实际软件项目中,管理团队事实上比写代码或者实现一个客户的需求更为的有挑战性. 由于编程实际上是和机器打交道.而和机器打交道,仅仅要你符合机器预定的逻辑, 一步步迈向解决这个问题的道路上一点都不 ... 
- 【Excle】在重复数据中对日期排序并查询最新的一条记录
			现在存在以下数据: 需要查询出以下数据 姓名 日期 张三 2017-12-14 李四 2017-12-16 在E1中写入以下公式:=IF(D2=MAX(IF($C$ ... 
- Java自动内存管理机制
			1.运行时数据区域划分 2.程序计数器 作用:可以看做是当前线程所执行的字节码的行号指示器. 解释:字节码指示器就是通过改变程序计数器的值来指定下一条需要执行的指令.分支,循环等 基础功能就是依赖程序 ... 
- 测试用例使用传统excel还是思维导图(Xmind、MindManager等)?
			一.使用感言 实习时随便使用了word文档编写测试用例,也没有人带.后来第一份正式测试工作,也没有人带测试,那时跟着大众学用思维导图写测试用例,发现思维导图非常灵活.目前使用xmind. 使用思维导图 ... 
- JDBC技术总结(二)
			上一节主要讲了JDBC的基本操作,这一节主要总结一下JDBC如何处理大文本.如何处理图片以及进行批处理. 1.JDBC处理大文本 在MySQL中,大文本是text类型,使用Java操作数据库中的大文本 ... 
- Docker URL REST API访问设置
			Docker daemon 绑定到该端口上. 默认情况下,docker daemon使用unix socket(unix:///var/run/docker.sock) 1.先停止docker dae ... 
- curl命令测试https
			curl -vosa --resolve pic.test.net::222.241.7.179 https://pic.test.net/UploadFiles/201312031744347965 ... 
- Atitit.Java exe bat  作为windows系统服务程序运行
			Atitit.Java exe bat 作为windows系统服务程序运行 1. 使用SC命令+srvany.exe (不错,推荐)+net start1 1.1. First 创建一个java的运 ... 
- 启动spring boot 异常
			再我搭建spring boot工程后,run application的时候抛出下面异常 Exception /slf4j-log4j12-.jar). If you are using WebLogi ... 
- 一家O2O社区App公司的随笔
			近两年,O20是业内最火爆的关键词之一,去年拿到1亿天使投资的叮咚小区都引起了各方的关注. 一个月之前我入职了一家以做O2O社区产品的创业公司,此文会把这段时间和后边所见所想都写出来,总结创业公司和创 ... 
