博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
22.引用指针
阅读量:5221 次
发布时间:2019-06-14

本文共 1387 字,大约阅读时间需要 4 分钟。

  • 引用的本质就是两个变量名的地址是同一块内存,可以改变该地址指向的内容
  • 引用指针可以改变指针指向的地址(因为取地址就是指针变量的地址,地址改变,原指针指向的地址也变了),也可以改变指针指向的内容

 

 

  • 左值引用与右值引用
    1 //左值引用与右值引用 2 void main1() 3 { 4     int a(4); 5     int *p(new int(5)); 6     cout << a << endl; 7     cout << *p << endl; 8     //右值引用 9     int &&rra(move(a));//右值引用,有内存实体就直接引用,没有就开辟内存10     rra = 1;11     cout << a << endl;12 13     //左值引用14     int &la(a);15     int *&lp(p);16     la = 3;17     *lp = 12;18     cout << a << endl;19     cout << *p << endl;20 21 22     cin.get();23 }

     

  • 一级指针引用改变指针的指向
    1 //引用一级指针 2 int num1 = 10; 3 int num2 = 20; 4 //C++能用引用就别用指针 5 //引用可以改变指针的地址也可以改变指针指向的地址或值 6 void change(int *&rp) 7 { 8     rp = &num2; 9 }10 11 12 void main2()13 {14     int *p = &num1;15     change(p);16 }

     

  • 引用二级指针
    1 //引用二级指针 2 int data1 = 10; 3 int data2 = 20; 4 int *p = &data1; 5 int *p2 = &data2; 6  7 //引用传递的是变量的地址 8 void changeit(int **&rpp) 9 {10     //改变二级指针存储的地址11     //*rpp = &data2;12     //改变二级指针指向的地址13     rpp = &p2;14 }

     

  • 返回值是引用指针
    1 //返回的指针类型为char *类型的引用 2 char * & get() 3 { 4     char *p = "hello"; 5     printf("&p=%p,,p=%p\n", &p, p); 6     return p; 7 } 8  9 void main()10 {11     char *&rp = get();//rp变量的地址就是p的地址,rp是存储的地址12                       //当rp变量的地址被回收,rp存储的地址就不能被读取13     printf("%p\n", &rp);14     char *newp = get();//newp的地址是新创建的,并指向p,不会被回收15     printf("%p\n", &newp);16     cin.get();17 }

     

转载于:https://www.cnblogs.com/xiaochi/p/8544870.html

你可能感兴趣的文章
.net 文本框只允许输入XX,(正则表达式)
查看>>
[BSGS][哈希]luogu P3846 可爱的质数
查看>>
Python 第四十五章 MySQL 内容回顾
查看>>
iostat参数说明
查看>>
Python-Mac 安装 PyQt4
查看>>
实验2-2
查看>>
String,StringBuffer与StringBuilder的区别?? .
查看>>
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
JQuery 学习
查看>>
session token两种登陆方式
查看>>
IntelliJ IDEA 12集成Tomcat 运行Web项目
查看>>
java,多线程实现
查看>>
个人作业4-alpha阶段个人总结
查看>>
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
递归-下楼梯
查看>>
实用的VMware虚拟机使用技巧十一例
查看>>
监控工具之---Prometheus 安装详解(三)
查看>>
不错的MVC文章
查看>>
网络管理相关函数
查看>>
IOS Google语音识别更新啦!!!
查看>>