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指针所 ...
随机推荐
- Spring3的quartz定时任务
要使用定时任务,需要将quartz-1.5.2.jar加入lib,没有的话可以从下面地址下载: quartz-1.5.2.jar 有了这个再做个配置文件appctx-quartz.xml: <? ...
- java.lang.NoSuchMethodError: ognl.SimpleNode.isEvalChain(Lognl/OgnlContext;)Z解决方法
执行JavaEE项目时出现例如以下错误: java.lang.NoSuchMethodError: ognl.SimpleNode.isEvalChain(Lognl/OgnlContext;)Z a ...
- Warning: isMounted(...) is deprecated in plain JavaScript React classes.
1.错误提示 警告:isMounted(…)在纯 react.js 类中被弃用. 2.原因解析 出现此错误提示的原因是源代码内有已被React舍弃的代码,但此并不影响程序运行. 在index.js 内 ...
- Ros 中的多线程
参考文献:http://blog.csdn.net/sinat_27554409/article/details/48446611 老王说ROS http://blog.csdn.net/yake ...
- EasyUI 鼠标经过 显示气泡一例
$(function(){ $('#contacts').tooltip({ position: 'bottom', content: '<c:forEach items="${rec ...
- @Autowired @Transaction @Service同时出现。
对于@Autowired,如果只写这些,肯定是根据类型自动装配这个没问题. @Service public class AcRoleServiceImpl implements AcRoleServi ...
- Android下的Handler
coder是没必要重复造轮子的,写博客亦如此.因为工作忙,学的东西比较多,没法自己来写博客.自己想了个思路就是,把别人的技术精华拿过来,从简到难,慢慢学习.最后提炼,得到自己想学的东西即可,等有时间了 ...
- angular中使用daterangepicker完全能用版
angular版本:angular5 先看效果图: 最新版是这样的: 附上插件的网址: http://www.daterangepicker.com/ 1 安装: daterangepicker依赖于 ...
- nginx日志统计流量
cat access.log |awk '{sum+=$10} END {print sum/1024/1024/1024}' $10是nginx字段bytes_sent 字段,根据自己的日志格式修改 ...
- 数据结构之shell排序
#SIZE 10 //直接插入排序 void insert_sort(){ int i,j; int array[SIZE+1]; ...