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

北京市保障房建设投资中心网站推广平台怎么找客源

北京市保障房建设投资中心网站,推广平台怎么找客源,龙岩做网站公司在哪里,上海网页制作这里写目录标题引用引用的基本使用引用做函数参数引用作为函数返回值引用的本质常量引用引用与指针的区别&的三种作用引用 引用的基本使用 作用: 给变量起别名 语法: 数据类型 &别名 原名 引用的本质是给变量起别名,因此&#xff0…

这里写目录标题

  • 引用
    • 引用的基本使用
    • 引用做函数参数
    • 引用作为函数返回值
    • 引用的本质
    • 常量引用
  • 引用与指针的区别
  • &的三种作用

引用

引用的基本使用

作用: 给变量起别名
语法: 数据类型 &别名 = 原名

引用的本质是给变量起别名,因此,a、b都是同一个变量的名字,指向的是同一块地址空间

void ReferenceFunc()
{int a = 10;int &b = a;  //b是a的引用cout << "a = " << a << endl;cout << "b = " << b << endl;b = 100;cout << "a = " << a << endl;cout << "b = " << b << endl;
}

运行结果:
在这里插入图片描述

注意:
1、引用声明的时候必须初始化
2、同一个变量可以有多个引用
3、可以嵌套引用
4、引用声明之后,就不能再引用其他的变量了

void ReferenceFunc_basic()
{int a = 10;int &b = a; //int &c; //err, 引用必须初始化int aa = 20;b = aa;     //赋值操作,而不是更改引用 ===> 引用声明之后,就不能再引用其他的变量了cout << "a = " << a << "\ta的地址为:" << &a << endl;cout << "b = " << b << "\tb的地址为:" << &b << endl;int &c = a;int &d = a; //同一个变量可以有多个引用int &e = c; //e是c的引用,c又是a的引用===>引用可以嵌套cout << "a = " << a << "\ta的地址为:" << &a << endl;cout << "c = " << c << "\tc的地址为:" << &c << endl;cout << "e = " << a << "\te的地址为:" << &e << endl;
}

运行结果可以看出:1、b = aa; 是一个赋值操作,因为引用声明之后,就不能再引用其他的变量;2、a c e值相同,地址相同,所以c e 都是a的引用,可以嵌套定义
在这里插入图片描述

引用做函数参数

在三个函数的入参均为(10,20)的时候,通过不同的方式进行交换
在这里插入图片描述
结论:通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单

引用作为函数返回值

作用:引用是可以作为函数的返回值存在的
注意:不要返回局部变量引用
用法:函数调用作为左值

int& fun01()
{int a = 12;return a;
}int& fun02()
{static int a = 12; return a;
}
void ReferenceFunc_return()
{//1、不要引用局部变量做返回值int &b = fun01();       //通过这句话,b就成为了a的引用,又因为a为局部变量,所以此时b实际上指的是非法空间cout << b << endl;cout << b << endl;cout << b << endl;//2、函数的调用可以作为左值int &ref = fun02();cout << "ref = " << ref << endl;cout << "ref = " << ref << endl;fun02() = 1000;cout << "ref = " << ref << endl;cout << "ref = " << ref << endl;}

在这里插入图片描述

引用的本质

本质:引用的本质在c++内部实现是一个指针常量
编译器发现是引用,自动转换为 int* const ref = &a; 即转换成为指针常量,指针常量是指针指向不可改,也说明为什么引用不可更改

int& ref = a;
ref = 20; // 内部发现ref是引用,自动帮我们转换为: *ref = 20

常量引用

引用必须是引用一块合法的内存空间,当右值为一个常量时,需要使用常量引用

1、常量引用的本质:加入const,编译器会优化代码为,int temp = 10; const int &c = temp;
2、常量引用不能修改所指向的值,类似于 const int * const p = &a; 此时指针 p 不能指向别处,也不能通过 *p 修改所指向内容的值
void ReferenceFunc_const()
{int a = 10;//int &b = 10;//err,引用必须是引用一块合法的内存空间,右值为一个常量const int &c = 10;//OK,使用常量引用c = 20;//err, const int &p <===>  const int * const p
}
void ShowVal(int &val)
{val = 1000;//changedcout << "被调函数 m = " << val << endl;
}void ShowVal2(const int &val)//常量引用 ==> 用来修饰形参,防止误操作
{//val = 1000; //err,不能修改常量引用cout << "被调函数 n = " << val << endl;
}
void ReferenceFunc_const()
{int m = 23;ShowVal(m);cout << "主调函数 m = " << m << endl;int n = 435;ShowVal2(n);cout << "主调函数 n = " << n << endl;
}

在这里插入图片描述

引用与指针的区别

1、引用声明就要初始化,指针不用初始化,例如可以声明:int *p = NULL;
2、引用不能指向其他变量,指针则可以任意指向。p = &a; p = &d;
3、引用不占存储空间,指针占空间
4、引用效率更高,指针是间接操作
5、引用更安全,指针可以偏移
指针更灵活,直接操作地址,指针更通用,C语言和C++都行

&的三种作用

声明变量的时候有&,表示引用
变量前边加&,表示取地址
数&数,表示位与运算
http://www.15wanjia.com/news/54474.html

相关文章:

  • 医院网站建设策划方案代发百度关键词排名
  • 网站开发技术与vb百度指数资讯指数
  • 做彩铃网站正规培训机构有哪些
  • 住房和城乡建设部的网站首页查询网站服务器
  • php网站后台密码忘记了app投放渠道有哪些
  • 郑州 网站建设有限公司seo效果分析
  • 网站建设专家北京注安搜索引擎有哪些分类
  • 织梦网站免费模板找客源免费用哪个软件好
  • 做网站推广选择什么最好中国培训网
  • 东莞公司注册地址变更流程长沙谷歌优化
  • 为什么做红酒网站百度的广告
  • 美工培训班线上宁波专业seo服务
  • 济南比较好的网站开发公司合肥正规的seo公司
  • 网站布局 种类海外短视频软件
  • 北京海淀科技有限公司东莞网络优化服务商
  • 设置网站域名营销推广是什么
  • 微擎怎么做网站2345浏览器主页网址
  • 织梦企业黄页网站源码百度做广告推广怎么样
  • wordpress图片链接win10优化大师免费版
  • 专业外贸网站建设2022年适合小学生的新闻
  • 换空间对网站排名的影响吗互联网营销方式有哪些
  • ip查询网站备案查询长沙百度seo
  • 商城网站建设教程seo专员工作容易学吗
  • 石家庄网站推广公司网站seo标题是什么意思
  • 孟州网站好看的网站设计
  • 哪里有网站建设多少钱seo优化啥意思
  • 定制网站与模板建站维护企业网站首页
  • 网站建设 东莞快照网站
  • 滚动视差网站seo网站推广有哪些
  • 客户做网站一定报价怎么办微信小程序开发费用一览表