当前位置: 首页 > news >正文

整站下载器 安卓版黄冈网站推广厂家

整站下载器 安卓版,黄冈网站推广厂家,wordpress七牛图床插件,网站的制作哪家好引用&#xff08;reference&#xff09;是C极为重要的一部分&#xff0c;本文对其用法进行简单总结。 1. 引用的基本用法 引用的关键字为&&#xff0c;表示取地址的意思&#xff0c;引用变量定义如下&#xff1a; int m 1; int &n m; //定义 cout<<"n:…

引用(reference)是C++极为重要的一部分,本文对其用法进行简单总结。

1. 引用的基本用法

   引用的关键字为&,表示取地址的意思,引用变量定义如下:

int m = 1;
int &n = m;  //定义
cout<<"n=:"<<n<<" m="<<m<<endl;
cout<<&n<<"  "<<&m<<endl;
n = 2;  //修改
输出为:
n=:2 m=2
0x75fe78  0x75fe78

 从结果可以看出来,变量n和m地址是一样的,而且修改n,m也会改变,这与指针有这异曲同工之妙。可以理解把引用为数据的另一个称呼。
  引用要在定义的时候就赋值,并且不能再去引用别的变量,这一点和常指针类似(指向不变的指针)。引用变量在使用的时候直接使用变量名即可,不用带&,带上&表示取地址。

2. 引用作为形参

  将引用变量作为函数的形参,与指针作为形参类似,可以在函数内部对输入参数进行修改。
 

#include <iostream>
using namespace std;void swap(int &m, int &n) {int temp = m;m = n;n = temp;
}
int main(){int a = 1, b = 100;cout<<"before: a="<<a<<", b="<<b<<endl;swap(a,b);cout<<"after: a="<<a<<", b="<<b<<endl;
}
输出:
before: a=1, b=100
after: a=100, b=1

引用变量在使用的时候似乎比指针简洁一些,变量本身就代表了引用的数据,而指针则需要加上*。

3. 引用与指针的区别
  引用和指针都可以对被引用(指向)数据进行操作,具有相似的功能,不过还是有一些区别:

  ①引用必须从一而终,不能再指向其他数据;指针可以随意改变指向。
  ②int & const p = a是非法的,因为引用本身就自带有“常量”的属性,不用再刻意限制;而int * const p = &a是合法。此外,虽然int & const p = a不合法,但是const int & p = a依旧是合法的,意思是引用的数据不可修改。
  ③指针可以有多级,引用不可以。int **p = &a合法,int &&p = a非法。

  关于指针和引用的区别,有人认为引用其实就是指针的简单封装,而且引用是占有内存的,但是无法获取地址,不是简单的一份数据两个名字。因为如果在类中定义引用变量,用sizeof可以计算出引用确实占用了内存。为啥无法获取引用本身的地址,解释是编译器不想让我们获取。

4. const 引用
 

void swap(int &m, int &n) {int temp = m;m = n;n = temp;
}
int main(){int a = 1, b = 2;int &a1 = a;      //合法int &a2 = a + 1;  //非法int &a3 = a + b;  //非法swap(a+1,a);      //非法
}

从上边代码可以看到,不能引用临时变量,临时变量一般是表达式形式的,一般会储存在寄存器上且无法修改,寄存器是无法寻址的,所以也无法引用(指针也一样),同样,临时变量也不能作为实参传给引用形参。
  这种限制,会使引用在使用的时候很不方便,但是借助const关键字,可以解决这一问题。在引用变量前边添加const关键字,就是告诉编译器,我不会去修改你的临时变量,编译器就会为临时变量分配内存,于是引用就可以用了(指针不行)。

void swap(const int &m, const int &n) {}
int main(){int a = 1, b = 2;int &a1 = a;const int &a2 = a + 1;const int &a3 = a + b;swap(a+1,a);
}

添加const后,这些代码就不会报错了。

http://www.qdjiajiao.com/news/10192.html

相关文章:

  • 做后台财务系统网站2023年九月份新闻
  • 深圳住房建设厅网站首页青岛网络优化哪家专业
  • 网站建设网络公b2b电子商务平台排名
  • 网站建设方案范文8篇百度推广账号登陆入口
  • 在哪里可以自己建网站搜索引擎营销流程是什么?
  • 山东建设网站首页哈尔滨seo网络推广
  • 营销网站建设培训学校自己做网站如何赚钱
  • 文成做网站如何制作视频网站
  • 网站开发执行文档手机百度快照
  • 外国人的做视频网站吗百度网址安全中心
  • 网站改版是什么意思外包平台
  • 网站换模板有影响吗兰州网络推广关键词优化
  • 什么购物平台质量最好seo优化报价
  • wordpress 站群模板数据营销
  • 什么网站做外贸最多的it菜鸡网seo
  • 网站手机微信三合一怎么做网站百度不收录的原因
  • python网站开发实例教程电商平台运营方案思路
  • 有没有专门做蛋糕的网站推广关键词排名
  • 做网站开发用哪门语言合肥全网推广
  • 宜州做网站需要多少钱2023年8月新冠
  • 网站建设与管理案例...it行业培训机构一般多少钱
  • 专业网站建设微信网站定制网站制作多少钱
  • 主机屋网站搭建设置湖南网站托管
  • .net 网站自动登录全网优化推广
  • 旅游网站模板下载爱站网ip反查域名
  • 改行做网站销售营销方案100例
  • 石家庄网站建设推广公司报价百度一下搜索
  • 淘宝网站首页怎么做学it什么培训机构好
  • 建立网站的原因小学生收集的新闻10条
  • 网站动态添加广告怎么做的cps游戏推广平台