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

怎样通过阿里云建设网站谷歌香港google搜索引擎入口

怎样通过阿里云建设网站,谷歌香港google搜索引擎入口,哪个网站做免费广告好,上海工程造价咨询公司C练级之初级:第五篇 第五篇 C练级之初级:第五篇1.auto关键字2.for循环改进3.指针空值nullptr4.内联函数4.1内联函数的概念4.2内联函数的注意点 总结 1.auto关键字 🤔什么是auto(automatic的缩写,自动的意思)关键字? au…

C++练级之初级:第五篇

第五篇

  • C++练级之初级:第五篇
    • 1.auto关键字
    • 2.for循环改进
    • 3.指针空值nullptr
    • 4.内联函数
      • 4.1内联函数的概念
      • 4.2内联函数的注意点
  • 总结

1.auto关键字

🤔什么是auto(automatic的缩写,自动的意思)关键字?

auto是自动推导类型的关键字,在编译阶段,根据表达式右边的表达式自动推导表达式左边的类型;
在这里插入图片描述
在这里插入图片描述
你们可能不相信,为了查看类型,介绍一个 操作符typeid().name()

在这里插入图片描述

🤔🤔auto关键字是解决什么问题呢?

当类型过长时我们就可以用auto关键字,但是其实typedef也是可以的,只是typedef要先知道类型也就是说你要先打一遍这个类型😒;

🤔🤔🤔auto关键字有什么注意点?

  1. auto右边一定要初始化;
    在这里插入图片描述

  2. auto定义多个变量时这些变量类型一定要一致;
    在这里插入图片描述

  3. auto不能推导数组;
    在这里插入图片描述

  4. auto不能做函数参数;

在这里插入图片描述


所以总结一下,一般只有当数据类型过长时,我们用auto,for循环中我们用auto,其他情况下我们很少很少用auto;


2.for循环改进

😁很明显,for循环的改进是解决C语言中for循环的书写问题的;

在这里插入图片描述

🤔🤔刚才不是说auto用在for循环中吗,那么怎么用呢?

在这里插入图片描述

在这里插入图片描述

😁那么这段C++的for循环代码的意思是什么?
代码意思:依次将arr中的元素赋值给e(e是element,元素的意思,你也可以取其它名字),然后一个一个打印;
适用数组与容器;
可以用break,continue等关键字;


🤔🤔🤔如何修改数组元素呢?

用引用类型就可以修改数组了;

在这里插入图片描述

👉但是有一个点要注意👈

在这里插入图片描述

3.指针空值nullptr

🤔C语言不是有空指针NULL了吗?

在这里插入图片描述
按理来说第一个应该是int,第二个应该是int*;

看看NULL的定义

#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif

可以看到,NULL可能被定义为字面常量0,或者被定义为无类型指针(void*)的常量;
NULL是一个宏,会直接替换,而nullptr是一个关键字,表示空指针的意思;

为了更好的区别空指针和0,所以引入了nullptr关键字


在这里插入图片描述
注意:

  1. 在使用nullptr表示指针空值时,不需要包含头文件,因为nullptr是C++11作为新关键字引入的
  2. 在C++11中,sizeof(nullptr) 与 sizeof((void*)0)所占的字节数相同 。
  3. 为了提高代码的健壮性,在后续表示指针空值时建议最好使用nullptr。

4.内联函数

🤔内联函数是解决C语言什么问题?

在这里插入图片描述
我们从跨过表面看看内部:

在这里插入图片描述
😒我们可以观察出,像这种频繁调用且汇编代码量并不大的函数,每次都要建立函数栈帧,开销太大了😒;


🤔🤔如何高效解决像这种频繁调用的且汇编代码量很少的函数呢?

在以前学习C语言时,我们可以试试用宏去解决

在这里插入图片描述


总结一下宏在这里的优缺点:

  • 优点:不需建立函数栈帧,更高效(替换操作);
  • 缺点:写法太复杂,可读性差,不能调试;

🤔🤔🤔那么有没有更好的解决方案呢?

这就需要介绍内联函数了;

在这里插入图片描述


4.1内联函数的概念

inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。


这样看来,内联函数,既不需要建立函数栈帧,不复杂,可读性好,可以调试,高效,是对宏的优化,也是对频繁调用的且汇编代码不多的函数的一种优化;

在这里插入图片描述

🤔🤔🤔🤔既然内联函数这么好,那我们能不能在每个函数钱都加上inline呢?

4.2内联函数的注意点

  1. 注意:
    内联函数是适用于频繁调用的且汇编代码不多的函数
  2. inline对于编译器而言只是一个建议,最终的结果由编译器定,一般频繁调用且汇编代码量很少的函数编译器采用inline,对于递归或者代码量很大的情况下编译器不采用递归。

🤔🤔🤔为什么我的代码量便很少编译器却没有采用内联函数呢?

在这里插入图片描述

因为在默认的debug版本下,inline不会起作用,否则不方便调试,所以需要以下设置:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


  1. . inline不建议声明和定义分离,分离会导致链接错误。

在这里插入图片描述

在这里插入图片描述

因为inline函数是在编译时直接展开,没有地址,所以在链接时找不到声明所对应的定义,故报链接型错误;

在这里插入图片描述

总结内联函数

  • 被inline修饰的函数叫做内联函数;
  • 内联函数是适用于频繁调用的且汇编代码不多的函数,解决函数频繁开辟栈帧的开销;
  • inline对于编译器而言只是建议;
  • 内联函数的声明和定义不能分开;

总结

今天主要学习了auto关键字,nullptr关键字,for循环的改进,内联函数是什么及其注意点,如果喜欢本篇不妨留下一个❤️;

请添加图片描述

http://www.yidumall.com/news/93254.html

相关文章:

  • 网站建设文库 新的开始百分百营销软件官网
  • 做前端网站考虑兼容分辨率克州seo整站排名
  • 如何做好网站的建设与维护seo课程总结
  • wordpress主题中的psd优化方法
  • 宁波网络营销外包推广百度关键词优化软件网站
  • 番禺手机网站制作推广2023年九月份新闻
  • 网站内容编辑怎么做网站排名靠前
  • 微信网站制作软件企业软文营销
  • 网站关键字优化地点手机优化大师下载安装
  • 个人网站建设方案书范文小程序搭建
  • 做网站推广费用西安seo排名优化推广价格
  • 建设部官方网站淘宝网络营销方式
  • 哪种语言做的网站好无锡网站推广公司
  • 在网站加上一个模块怎么做青岛百度网站排名优化
  • b2b2c商城开发关键词优化推广公司
  • 上海微信网站建设费用网络营销教材电子版
  • 怀柔 做网站的网站seo优化技能
  • 哪个网站做外贸零售比较好呢优化大师免费版
  • 外贸免费p2p网站建设推广竞价的公司有哪些
  • 开发动态网站有哪些技术百度自己的宣传广告
  • 网站建设团队名称网络营销的具体形式种类
  • 免费游戏直接能玩优化大师优化项目有哪些
  • WordPress文章开启评论seo解释
  • .net 网站开发流程毕业设计网站
  • 产品营销网站百度网盘app官方下载
  • 用织梦做网站有什么公司会要宁波seo快速优化课程
  • 松江营销型网站建设公司最近的国际新闻大事10条
  • 北理工网站开发与运用信息流广告公司一级代理
  • 网站建设中招聘页面源码惠州seo代理
  • 厨之梦进口食品网站谁做的北京疫情最新消息