C++中的引用常见用法
1.引用的内涵
引用就是给变量取外号而已。
2.四种不能使用引用的情况
void &r=x; //不能建立void类型引用
int &&r=x; //不能建立引用的引用
int &*p=x; //不能建立指向引用的指针,但是可以建立指向指针的引用
int &ra[]=a; //不能建立引用的数组
总结:引用一有三无:有类型,无引用,无指针,无数组
3.引用的最基本用法
#include<iostream>
using namespace std;
int x=,y=;
int &r=x;
void print()
{
cout<<"x="<<x<<" y=<<y<<" r="<<endl;
cout<<"Address of x "<<&x<<endl;
cout<<"Address of y "<<&y<<endl;
cout<<"Address of z "<<&z<<endl;
}
int main()
{
print();
r=y; y=;
print();
x=;
print();
return ;
}
运行结果如下:
x= y= r=
Address of x 00474DD0
Address of y 00474DD4
Address of r 00474DD0
x= y= r=
Address of x 00474DD0
Address of y 00474DD4
Address of r 00474DD0
x= y= r=
Address of x 00474DD0
Address of y 00474DD4
Address of r 00474DD0
总结:修改作用,引用==原变量
4.引用作为形参
引用作形参,系统不为其另分配内存空间,与原变量公用内存空间。
调用函数才初始化。
#include <iostream>
using namespace std;
void swap(int &x,int &y)
{
int t=x;
x=y;
y=t;
}
int main()
{
int a=,b=,c=,d=;
cout<<"a="<<a<<" b="<<b<<endl;
swap(a,b);
cout<<"a="<<a<<" b="<<b<<endl;
cout<<"c="<<c<<" d="<<d<<endl;
swap(c,d);
cout<<"c="<<c<<" d="<<d<<endl;
return ;
}
RESULT:
a=3 b=5
a=5 b=3
c=10 d=20
c=20 d=10
原文来自饼神的博客:http://my.oschina.net/zqmath1994/blog/506840
C++中的引用常见用法的更多相关文章
- Guava中Predicate的常见用法
Guava中Predicate的常见用法 1. Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...
- JAVA中enum的常见用法
JAVA中enum的常见用法包括:定义并添加方法.switch.遍历.EnumSet.EnumMap 1.定义enum并添加或覆盖方法 public Interface Behaviour{ void ...
- (转)轻松掌握shell编程中数组的常见用法及示例
缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习 ...
- Java中枚举的常见用法
在JDK1.5以后引入了一种新的类型,就是枚举(enum).enum是用来声明枚举类型数据,它可以像数组一样存储许多的元素,但是不同于数组的是,它除了数字不能存储以外, 其他类型的如字母.特殊符号.汉 ...
- Objective-C中#define的常见用法
参考博客 http://blog.csdn.net/kindazrael/article/details/8108868 在C语言中,预处理代码是非常强大的工具,能让代码变得可读性和可维护性更强.预处 ...
- 转:VC中MessageBox的常见用法
一.关于MessageBox 消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合. 1.MessageBox("这是一个最简单的 ...
- VC中MessageBox的常见用法
一.关于MessageBox 消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合. 1.MessageBox("这是一个最简单的 ...
- K:java中枚举的常见用法
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.....现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. ...
- Objective-C中Block的常见用法
typedef int(^AddValue)(int,int); int main(int argc, const char * argv[]) { @autoreleasepool { //1:NS ...
随机推荐
- Linux学习总结(四)-两种模式修复系统,单用户,救援模式
一单用户模式 我们举例,比如忘记root 用户密码我们就可以进入单用户模式重置,该单用户模式,类似windos 安全模式开机界面快速按e 进入grub光标定位到 linux16 下一行ro crash ...
- ASP.NET SingalR + MongoDB 实现简单聊天室(一):搭建基本框架
ASP.NET SingalR不多介绍.让我介绍不如看官网,我这里就是直接上源代码,当然代码还是写的比较简单的,考虑的也少,希望各位技友多多提意见. 先简单介绍聊天室功能: 用户加入聊天室,自动给用户 ...
- star组件
一.star组件 <template> <div class="star" :class="starType"> <span v- ...
- 火狐中jq的attr出现的bug问题用prop代替
再工作的时候遇到一个很奇怪的问题 ,就是attr属性不好使!就问度娘去了...... 结果如下: .prop() 1..prop( propertyName ) 获取匹配集合中第一个元素的Prop ...
- NSLog的各种打印格式符 和 打印CGRect时用NSStringFromCGRect
打印CGRect时用NSStringFromCGRect 转载自:http://blog.csdn.net/chenyong05314/article/details/8219270 1. 打印CG开 ...
- JS获取MVC Attrbuate验证是否通用
直接用JQValidate的方法,$("#FeedBackForm").valid(); 当结果是true表示验证通过,false时表示验证失败~
- 来看看Uber的司机支持服务签到及预约系统的架构设计思路
Uber的Greenlight Hubs(GLH)在全球拥有超过700个分支机构,为合作车主提供从账户和支付到车辆检查和车主注册等各方面的人工支持.为了给合作车主创造更好的体验并提高客户满意度,Ube ...
- 每日笔记---使用@ConfigurationProperties读取yml配置
每日笔记---使用@ConfigurationProperties读取yml配置 参考地址 https://www.cnblogs.com/mycs-home/p/8352140.html 1.添加 ...
- iOS 杂笔-26(苹果禁用热更新)
iOS 杂笔-26(苹果禁用热更新) 苹果爸爸禁用热更新小伙伴们有什么想说的吗? 苹果爸爸禁用热更新小伙伴们有什么想说的吗? 苹果爸爸禁用热更新小伙伴们有什么想说的吗?
- Android软件开发之SharedPreferences
SharedPreferences 一种轻量级的数据保存方式 以键值对的方式存储 用于存储小批量的数据 使用方法: SharedPreferences sp= getSharedPreferenc ...