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

昌平石家庄网站建设营销策略分析论文

昌平石家庄网站建设,营销策略分析论文,今日娱乐新闻最新消息,江苏网站备案流程浅谈c 在这里开设 <<浅谈C>> 系列专题,针对C重点内容展开探讨与观察底层,同时也是一个面试专栏,所选知识大多为面试常见问题.前期较为基础,难度会逐渐上升哦~ 本专栏采用经典的哲学三段论编写:是什么|为什么|怎么做 力图精简,高效. 第一章: 浅谈C函数重载 传送门…

浅谈c++

在这里开设 <<浅谈C++>> 系列专题,针对C++重点内容展开探讨与观察底层,同时也是一个面试专栏,所选知识大多为面试常见问题.前期较为基础,难度会逐渐上升哦~

本专栏采用经典的哲学三段论编写:是什么|为什么|怎么做
力图精简,高效.

第一章: 浅谈C++函数重载


传送门

  • 浅谈c++
  • 什么是引用
  • 为什么存在引用
  • 我们平常如何使用引用
    • 常引用
    • 两个重要使用场景
      • 做参数
      • 做返回值
  • 引用与指针的不同点
  • 总结


什么是引用

引用不是新定义一个变量,是给已经存在的变量取了一个别名,引用变量不会开辟
新的内存空间,它和它引用的变量共用一块内存空间.

 类型& 对象名 = 引用实体;

在这里插入图片描述

以上是一些使用特征,有

  • 引用在定义时必须初始化
  • 一个变量可以有多个引用
  • 引用一旦引用一个实体,再不能引用其他实体
指针在没有const修饰下可以指向其他地址

为什么存在引用

既然C语言通过指针能够很好的进行内存操作,那为什么会在C++新增引用这样的操作.

C++中引用最初是为了解决运算符重载的问题;

关于运算符重载,我们会在本专栏下一章**<<浅谈C++类和对象>>**中进行整理.

另一个特点就是可以引用临时对象;也是类和对象话题.

实践中,使用指针通常会有:

  • 空指针
  • 野指针
  • 人为修改指针变量但不知情

引用则有:

  • 引用不允许为空(空指针)
  • 定义初始化(野指针)
  • 只能指向一个实体(值修改)

我们平常如何使用引用

常引用

C语言中我们可以借助const关键字对指针进行控制,引用和指针这么像,那么const可不可以用于引用呢?

在这里插入图片描述

产生如上报错

在这里插入图片描述

运行成功

权限的放大

这样呢?

在这里插入图片描述

运行成功

在这里插入图片描述

权限的缩小

取别名的原则:对原引用变量,权限只能缩小,不能放大,经过const修饰,权限变为只读.

那么,我们可不可以给常量取别名呢?

int a = 10;
int &b = a;
int &c = 20;//?

当然不可以,原理同上,20作为常量权限为只读,直接进行引用属于权限的放大.

const int &c = 20;

权限相同即可

继续观察如下代码

double d = 3.14;
const int& e = d;

已知引用有必须指向相同类型的特性,为什么这样的代码可以运行呢?

C语言存在隐式类型转换,C++以C语言为基础,沿用了这种特性.

在这里插入图片描述

数据转换时会产生临时变量,会把转换后的数据取出存放进来,且具有常性质,是只读的.const引用则指向了这块临时变量,是临时变量的别名.

之后临时变量会拷贝到e,e的改变不影响临时变量.

e是临时变量的别名,不再指向d.

在这里插入图片描述

从此,临时变量的生命周期就跟着e走啦!!!

涉及到了函数传参问题,当函数的参数为引用时,就要注意参数之间的权限匹配问题啦.只能相等或缩小,不能放大.

//void func(const int& x)就可以啦
void func(int& x)
{}int main()
{int a = 10;const int &b = a;func(a);func(b);//是不可以滴return 0;
}

两个重要使用场景

做参数

void Swap(int &x, int &y)
{int tem = x;x = y;y = tem;
}
void Swap(double &x, double &y)
{double tem = x;x = y;y = tem;
}int main()
{int a = 0;int b = 1;Swap(a, b);double c = 1.2;double d = 3.4;Swap(c, d);
}

不像以前C语言时需要借助指针解引用那么麻烦,传入了变量的别名,指向同一块地址,直接可以进行修改.

也可以做输出型参数(薄纱C)

同时传引用的效率高于传值或者传指针20-30倍.

意义:

  • 输出型参数
  • 减少拷贝,提高效率

做返回值

静态变量的补充:在同一个作用域只会初始化一次,指向的是同一块地址.

传值返回

int count()
{static int n = 0;n++;return n;
}int main()
{int ret = count();return 0;
}

传值返回过程中,会产生一个临时变量,如果数据较小,将用寄存器代替,如果数据较大,则会在上一层栈帧中开辟预留空间进行拷贝.会先将n传给临时变量,临时变量拷贝到ret;当n没有用static修饰时,在函数栈帧中,出了count的作用域n就会销毁,所以需要临时变量的帮助.

在这里插入图片描述

传引用返回

int &count()
{static int n = 0;n++;return n;
}int main()
{cout << count() << endl;cout << count() << endl;cout << count() << endl;return 0;
}

产生一个引用类型的临时变量,相当于临时变量是返回值n的别名,临时变量有传给了count,即把n传回,减少了传值返回临时变量开辟的空间,意味着返回了n的别名.

在这里插入图片描述

  • 传值返回:会有一个拷贝
  • 传引用返回:没有拷贝,返回的就是返回变量的别名.

那count函数的空间归还了,n的别名还在吗?,如果我们取消了static修饰并且用ret接收了返回值,那么以后使用ret会出现问题吗?

这是一个由引用间接引起的野指针问题.

一般的,如果函数返时,出了函数的作用域,如果返回对象还在没有归还系统,则可使用引用返回,如果已经还给系统,必须使用传值返回,否则就可能会出现越界问题

与后续知识强相关,在以后章节中细谈.

引用与指针的不同点

  • 引用概念上定义一个变量的别名,指针存储一个变量地址
  • 引用在定义时必须初始化,指针没有要求
  • 引用在初始化后引用一个实体,就不能引用其他实体,指针可以随时指向同类型实体
  • 没有NULL引用,但又NULL指针
  • sizeof中,引用为引用类型的大小,指针始终是地址空间所占字节个数
  • 引用自加即引用实体增加1,指针自加即指针向后偏移一个类型的大小
  • 有多级指针,但没有多级引用
  • 访问实体方式不同,指针需要显示解引用,引用由编译器处理
  • 引用比指针相对安全

语法角度来说,引用是一个别名,没有额外开空间

底层的角度来说,引用与指针的实现方式是一样的


总结

对C++引用的探讨,希望可以帮助到看官

为了做一个全面的复习,作者决定开始同时开辟**<<浅谈C++>><<浅谈Linux>>**两个专栏,交错更新,都是对基础知识的较深探讨,对知识起巩固整理的作用.同时也会穿插一些方法类,框架类,算法相关的零散文章.

下一章:<<浅谈C++类和对象>>

码字不易,期待三连~

http://www.mmbaike.com/news/44534.html

相关文章:

  • 企业建设网站个人总结报告电商网站建设教程
  • 上海 网站备案拍照厦门人才网招聘
  • 做宣传 为什么要做网站那分类达人的作用
  • 网站建设行业细分影视后期哪个培训靠谱
  • 做动画人设有哪些网站可以借鉴百度识图扫一扫入口
  • 买网站服务器吗sem是什么显微镜
  • 怎么通过淘宝优惠券做网站赚钱永久免费linux服务器
  • 网站搭建自助下单平台优化搜索曝光次数的方法
  • 前端 兼职做网站重庆网站开发公司
  • 如何进入公司网站的后台口碑营销有哪些方式
  • 网站建设产品经理职责如何做好一个品牌推广
  • 苏州做网站的企业企业推广宣传方式
  • 做网站用什么语言制作最安全北京网站优化方法
  • 建设酒店网站ppt关键词seo如何优化
  • 常熟公司做网站seo外链推广员
  • 企业网站策划书ppt灰色词快速排名方法
  • 网站百度排名怎么做北京疫情最新消息
  • 高师院校语言类课程体系改革与建设 教学成果奖申报网站软文怎么做
  • 自己的域名怎么做网站友情链接平台哪个好
  • 用织梦做网站还要不要服务器石家庄seo培训
  • photoshop破解版seo宣传
  • 上海公共服务平台官网全专业优化公司
  • 微信营销平台系统seo中介平台
  • 企业网站模板下载网络营销做得比较好的企业
  • 注册网站网公司网站建设公司
  • 网站开发 框架 java网站赚钱
  • 化妆品企业网站案例大全付费恶意点击软件
  • 大连比较好的网站公司吗现在推广用什么平台
  • 哈尔滨网站建设效果好宁波seo推广公司排名
  • 网站广告赚钱网络优化是干什么的