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

做网站那个好南京关键词seo公司

做网站那个好,南京关键词seo公司,企业信息公示系统查询全国官网,php网站开发案例详解🙋本文主要讲讲C的引用 是基础入门篇~ 本文是阅读C Primer 第五版的笔记 🌈 关于引用 几个比较重要的点 🌿引用相当于为一个已经存在的对象所起的另外一个名字 🌞 定义引用时,程序把引用和它的初始值绑定(b…

🙋本文主要讲讲C++的引用 是基础入门篇~

本文是阅读C++ Primer 第五版的笔记
🌈 关于引用 几个比较重要的点
🌿引用相当于为一个已经存在的对象所起的另外一个名字
🌞 定义引用时,程序把引用和它的初始值绑定(bind)在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。因为无法令引用重新绑定到另外一个对象,因此引用必须初始化
🌺 另外要注意 类型不能混用
🐳相信看完后 你会有所收获~

C++ 引用

C++11中新增了一种引用:所谓的**“右值引用(rvalue reference)”,我们将在13.6.1节(第471页)做更详细的介绍。这种引用主要用于内置类**。严格来说,当我们使用术语“引用(reference)”时,指的其实是“左值引用(Ivaluereference)”。

引用(reference)为对象起了另外一个名字,引用类型引用(refers to)另外一种类型。通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名:

int ival =1024;
int &refVal = ival;
// refVal 指向ival(是ival的另一个名字)
int &refVal2;
//报错:引用必须被初始化

一般在初始化变量时,初始值会被拷贝到新建的对象中。然而定义引用时,程序把引用和它的初始值绑定(bind)在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。因为无法令引用重新绑定到另外一个对象,因此引用必须初始化。

引用并非对象,相反的,它只是为一个已经存在的对象所起的另外一个名字。

定义了一个引用之后,对其进行的所有操作都是在与之绑定的对象上进行的:

refval = 2;
//把2赋给refVal指向的对象,此处即是赋给了ival
int ii = refval;//与ii = ival执行结果一样

为引用赋值,实际上是把值赋给了与引用绑定的对象。获取引用的值,实际上是获取了与引用绑定的对象的值。同理,以引用作为初始值,实际上是以与引用绑定的对象作为初始值:

//正确: refval3绑定到了那个与refval绑定的对象上,这里就是绑定到ival上
int &refVal3 = refVal;
//利用与refval绑定的对象的值初始化变量i
int i = refval; //正确:i被初始化为ival的值

因为引用本身不是一个对象,所以不能定义引用的引用。

引用的定义

允许在一条语句中定义多个引用,其中每个引用标识符都必须以符号&开头:

int i =1024,i2 =2048;// i和i2都是int
int &r = i, r2= i2; // r是一个引用,与i绑定在一起,r2是int
int i3 = 1024, &ri = i3;// i3是int,ri是一个引用,与i3绑定在一起
int &r3 = i3,&r4= i2; // r3和r4都是引用

除了2.4.1节(第55页)和15.2.3节(第534页)将要介绍的两种例外情况,其他所有引用的类型都要和与之绑定的对象严格匹配。而且,引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起,相关原因将在2.4.1节详述:

int &refVal4 = 10;
//错误:引用类型的初始值必须是一个对象
double dval = 3.14;
int &refVal5 = dval;
//错误:此处引用类型的初始值必须是int型对象

练习

👊 下面是几个练习 可以检验一下学习成果~

//练习2.15:下面的哪个定义是不合法的?为什么?
(a)int ival = 1.01;
(b) int &rval1 = 1.
(c)int &rval2 = ival;
(d) int &rval3;//练习2.16:考查下面的所有赋值然后回答:哪些赋值是不合法的?为什么?哪些赋值是合法的?它们执行了什么样的操作?
int i = 0,&rl = i;
double d= 0,&r2=d;
(a) r2 = 3.14159;
(b)r2= rl;
(c) i = r2;
(d)rl = d;//练习2.17:执行下面的代码段将输出什么结果?
int i, &ri = i;
i = 5; ri = 10;
std::cout<< i<<" "<<ri <<std::endl;

🌿答案答案~
1️⃣练习2.15:下面的哪个定义是不合法的?为什么?

(a) int ival = 1.01; 是不合法的。因为int类型只能存储整数,不能存储浮点数1.01

(b) int &rval1 = 1; 是不合法的。因为1是一个字面量,它代表了整数1,但字面量不能被直接赋值给引用。而且,引用的定义需要一个已存在的变量作为其目标。

(c ) int &rval2 = ival; 是合法的,假设ival已经正确定义并且是一个int类型的变量。

(d) int &rval3; 是合法的,但rval3未被初始化,它将包含未定义的值。

2️⃣练习2.16:考查下面的所有赋值然后回答:哪些赋值是不合法的?为什么?哪些赋值是合法的?它们执行了什么样的操作?

(a) r2 = 3.14159; 是合法的。它将double类型的字面量3.14159赋值给r2r2是一个double类型的引用。

(b) r2 = rl; 是不合法的。因为rl是一个int类型的引用,而r2是一个double类型的引用。类型不匹配。

(c )i = r2; 是不合法的。因为i是一个int类型的变量,而r2是一个double类型的引用。尝试将一个double类型的值赋给一个int类型的变量会导致数据丢失。

(d) rl = d; 是合法的,但可能导致数据丢失。因为rl是一个int类型的引用,而d是一个double类型的值。int类型不能准确表示double类型的值,所以只有d的整数部分会被存储在rl指向的int类型变量中。

3️⃣ 练习2.17:执行下面的代码段将输出什么结果?

虽然i的值被5所赋值,随后ri被赋值为10,但std::cout会输出iri当前的值(不是所赋的值),此时i由于ri的赋值操作而覆盖了原本的值,ri输出为10。引用只是为其他变量提供了一个别名,并不复制原变量的值。所以i也是10

🌈ok 完结~ ~ 有帮助点个赞叭~

http://www.dt0577.cn/news/10570.html

相关文章:

  • 网站建设外包公司排名站群seo
  • 金泉网做网站多少钱电商从零基础怎么学
  • 广州建设执业注册中心网站成都企业seo
  • 互联网项目推广方案seo培训网
  • wordpress 多用户百度 seo排名查询
  • 行政单位单位网站建设开发一个小程序一般需要多少钱呢
  • ps手机网站制作外贸seo网站推广
  • app和网站的关系关键词挖掘网站
  • 广东网站设计品牌设计武汉刚刚突然宣布
  • 软文推广发稿平台优化网站的方法
  • 上海网站建设包括哪些百度推广员工工资怎么样
  • 营销对企业的重要性在seo优化中
  • 建个公司网站多少钱郑州网站推广电话
  • 千图网网站怎么做保定seo建站
  • 注册域名建设网站购买网站域名
  • 做的网站进不去后台aso推广公司
  • 在线客服系统源码免费大连网络营销seo
  • 进了网站的后台系统 怎么改公司的网站全球新冠疫情最新消息
  • 做公司网站建设价格低站长之家怎么用
  • 河南网站推广杭州seo运营
  • 社交网站建设内容学seo建网站
  • wordpress进行分类目录搜索成都网站seo公司
  • 广州商旅网站制作电商培训机构需要什么资质
  • 小说网站有源码了该怎么做杭州网站设计
  • 网站开发与web开发重庆seo推广外包
  • 企业网站的栏目设置网络推广平台公司
  • 网站建设中企动力上海全球最牛的搜索引擎
  • 直播交友app开发seo整站优化报价
  • 帮人做网站被派出所抓到徐州开鲁网站seo免费版
  • 承德名城建设集团网站seo公司排名