内联函数、auto关键字、范围for和nullptr

C++编程基础:内联函数、auto关键字、基于范围的for循环和nullptr 本文介绍了C++编程中的几个重要概念,包括内联函数的使用和特性,auto关键字的类型推导机制及其使用规则,基于范围的for循环的语法和使用条件,以及nullptr在指针控制中的应用。 阅读详情

宏的缺点

在C语言有宏这么一个概念,主要是为了方便使用函数

但是宏有一些缺点

内联函数

为了避免宏函数这种缺点C++就引入了内联函数,一般函数使用时要建立堆栈,但内联函数不用、

内联函数的特性是以空间换时间,并不是占用内存空间,而是使用内联函数后编译出来的可执行程序会变大

内联函数不建议声明和定义分离,这样会导致链接错误

内联函数调用的地方都是直接展开的,所以建议内联函数直接在.h文件里定义就行了

这就是内联函数

auto关键字

让编译器去自动推导类型

auto的实际价值是简化代码,当类型很长时可以让编译器自行推导

这里b的类型就是由a推导出来的,a是int类型,所以推导出来的b的类型就也是int类型

注:C语言里的 typedef().name()就可以去获取变量的类型

auto还有其他用法,就像这样。第一行的意思是c被限定了只能是个指针,第二行的意思就是d只能是a的别名

而且auto也可以一行声明多个变量,不过变量类型要相同

auto也不能作形参,不能声明数组

语法糖——(范围for)

这个是c++里的语法糖,这样使用for循环可以使用较少的代码达成目的

他的原理是依次自动取数组中数据赋值给e对象,自动判断结束

注:这里的e也可以换成其他值

空指针——nullptr

在一些极端情况下,C++里的NULL会被定义成0

在这段代码里可以看到系统把NULL认定成了int类型

所以NULL在C++里并非全部适用,所以在c++里就引用关键字nullptr去替代NULL

 

第二章第六节:C++快速入门之内联函数,auto关键字,C++11基于范围的for循环和nullptr 文章目录一:建立C++工程文件二:C++关键字三:命名空间(1)命名空间的作用(2)命名空间的定义A:命名空间的定义B:注意事项(3)命名空间的使用四:C++的输入和输出(1)cout(2)cin五:缺省参数(1)缺省参数的概念(2)缺省参数的分类A:全缺省参数B:半缺省参数(3)注意事项六:函数重载(1)函数重载的概念 C++虽然是基于C语言开发的,但是经过版本的不断更迭,有些语法,操作和C语言还是有缺别的。所以这也是很多人在学完C语言后,看到C++,总感觉两者没有关联,甚至觉得是两种不同的语言。读者在看 阅读详情

相关推荐

别再死记硬背注意力机制了!用Python+PyTorch从零实现一个HAN(Hierarchical Attention Network)

本文详细介绍了如何使用Python和PyTorch从零实现Hierarchical Attention Network(HAN),通过代码级解析帮助读者深入理解层次注意力机制。文章涵盖词级和句子级注意力层的构建、完整HAN架构的实现、训练技巧及注意力可视化方法,特别适合希望掌握高级NLP技术的开发者。

weixin_28744423的博客 162

内联函数,auto关键字,基于范围的for循环和空指针nullptr(c++基础语法)

1.内联函数 1.1概念 1.2特性 2.auto关键字 2.1类型别名思考 2.2auto简介 2.3auto的使用规则 2.4auto不能推导的场景 3.基于范围的for循环 3.1范围for的语法 3.2范围for的使用局限 4.空指针nullptr 4.1c98中的空指针值

m0_68641696的博客 275

免费AI视频生成全流程:通义千问+Seedance 2.5+Grok实战指南

AI视频生成正在成为内容创作的重要方式,但高昂的API费用常让个人创作者望而却步。实际上,通过合理组合云端免费工具,也能搭建一条完整的视频生产链路:利用大模型生成脚本,用视频生成模型将文本渲染成画面,再借助多模态模型进行一致性校验。这种“文本+视频+多模态”的协作模式,将复杂的生成任务解耦为可独立调用的模块,既降低了本地硬件要求,也为批量内容验证提供了低成本方案。该流程适用于短视频素材快速产出、产品Demo验证以及AI应用集成等场景,核心在于打通免费账号、API调用与批量任务调度。本文以通义千问、Seeda

weixin_29044157的博客 378

【C++杂货铺】内联函数、auto、范围for、nullptr

本文介绍了C++入门知识:内联函数、auto、范围for、nullptr

春人.的博客 5635

学习stm32H7之路开始(STM32H7系列1) 前期准备,HAL库框架

2020.01.07 几个重要的参考网址 1.电子工程世界网 http://tags.eeworld.com.cn/tags/STM32H7 链接: link. 2.转:https://blog.youkuaiyun.com/simon223/article/list/2?t=1 链接: link. ———————————————— 版权声明:本文为优快云博主「Simon223」的原创文章,遵循 CC 4....

kengkengkeng963的博客 3409

WRF所需气象数据的下载方法

#数据下载是个大问题,巧妇难为无米之炊,没有数据就无法模拟啦,疫情期间国外服务器响应慢,打开网页慢都很正常啦~ WRF数据所需要的外部数据分为两种:静态地理数据,grib格式的气象数据(NAM、GFS、RUC、AGRMET等)。静态地理数据可以从WRF官网获得,比较简单,这里不做介绍。所以这篇日志重点介绍的是气象数据的获取。 提前说明,WRF官网不提供气象数据,但WRF官网提供各类气象数据的下载网址链接,所以我们下载一般还是从WRF官网开始。首先进入WRF官网,然后点击WRF ARW Uusres’ .

六出的博客 1万+

【与C++的邂逅之旅】--- 内联函数 && auto关键字 && 基于范围的for循环 && nullptr

这个函数不陌生吧,我们在实现排序算法时经常要用,可你是否想到 一个问题,但我们排序的数据量较大时,我们会反复调用这个函数,不断创建函数栈帧,这会是一笔不小的开销,那有什么方法解决呢? 那C++中是否有更好的解决方法呢?这里就来介绍我们的内联函数 我们转到反汇编观察下细节 可以观察到,如果在上述函数前增加inline关键字将其改成内联函数,在编译期间编译器会用函数体替换函数的调用那 debug 版本下,怎么设置呢?请看下图 inline是一种的做法,如果编译器将函数当成内联函数处理,在编译阶段,会用函数体替换

2301_79448270的博客 1334

【初阶】手把手教你轻松上手Denodo | 连接数据库并创建基本视图 (二)

在本教程的第二部分,我们将涵盖:连接到数据库,与创建基本视图。

Denodo的博客 1104

【C++入门】内联函数 | auto关键字 | 范围for | 指针空值

C++入门 | 内联函数 | auto关键字 | 范围for | 指针空值

m0_74841364的博客 1573

LEAP模型—低排放分析平台

LEAP 正在迅速成为进行综合资源规划、温室气体 (GHG) 缓解评估和低排放发展战略 (LEDS) 的国家的事实标准,尤其是在发展中国家,许多国家也选择使用 LEAP 作为其承诺的一部分向联合国气候变化框架公约(UNFCCC)报告。至少有 32 个国家使用 LEAP 来创建能源和排放情景,这些情景是其国家自主气候变化贡献计划 (INDC) 的基础:具有历史意义的巴黎气候协议的基础旨在表明各国开始经济脱碳的意图和投资于气候适应力。

weixin_54697010的博客 3280

【Windows Server 2019】发布服务器 | 远程桌面服务的安装与配置 Ⅰ——理论,实验拓扑和安装基于RemoteAPP的RDS

博客介绍了Windows Server中远程桌面服务的理论,实验拓扑以及基于RemoteAPP的RDS安装。博文介绍了如何在Windows Server上部署发布服务器。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 6128

C++入门5.内联函数,auto关键字,基于范围的for循环(C++11),指针空值nullptr(C++11)

C++基础入门的最后一篇,

nainaire的博客 1824

移动机器人路径规划中噪声环境下的鲁棒性测试仿真

设计一个二维或三维环境模型,包括静态障碍物和可能存在的动态障碍物。

amy_mhd的博客 126

【C++入门篇】学习C++就看这篇--->内联函数、auto关键字、范围for

内联函数使用 inline 修饰,编译时会在调用处展开,可提升效率,但编译器可能不采纳此建议,且声明定义不宜分离。auto 关键字(C++11)可自动推导变量类型,结合指针引用需注意用法,但不能作函数参数及直接声明数组。基于范围的 for 循环(C++11)语法简洁,用于遍历数组等,要求迭代范围确定且对象实现相应操作。nullptr(C++11)作为指针空值,较 NULL 更安全清晰。

熬夜秃顶中...... 1453

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

内联函数 auto 基于范围for循环 空指针nullptr

因为inline被展开,就没有函数地址了,链接就会 找不到。这就是为什么f(NULL)和f(0)的结果是一样,而nullptr解决了这个问题。要开辟空间消耗栈要花蛮多时间,而内联函数不要开辟和消耗栈,以空间换时间的处理方式。,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,让我们一起学习C++知识叭,如果有错误,可以指点指点我噢。(和其他循环一样,可以用break停止,也可以用continue)了,导致在main中没有声明,所以报错。很像,都是在编译时调用的地方展开,

rwh04160416的博客 1924

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C++基础————内联函数、auto关键字、范围for循环、指针空值nullptr

1、内联函数 2、auto关键字 3、基于范围的for循环 内联函数 1.内联函数的基本概念 以inline修饰的函数叫内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的消耗,以提升程序运行的效率。 内联函数的特点 1.inline是一种以空间换时间的做法,省去调用函数的的开销,所以代码过长或者有循环和递归的函数不适合使用作为内联函数。 2.inline对于编译器只是一种建议,如果定义为inline的函数体内有循环或递归等等,编译器会自动优化,优化时会忽略掉内联。 3.inlin

Akun_H的博客 1055

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【 C++入门 】内联函数、auto关键字、指针空值nullptr

目录 1、内联函数 概念 特性 经典面试题 2、auto关键字(C++11) auto简介 auto的使用细则 auto不能推导的场景 auto的实际应用价值 3、基于范围的for循环(C++11) 范围for的语法 范围for的使用条件 4、指针空值nullptr(C++11)...

bit_zyx的博客 1101

【C++入门】内联函数、auto关键字(C++11)、范围for、nullptr

文章讲解了内联函数、auto关键字、范围for、指针空值nullptr等C++基础知识。

大米饭的记录册 2086

C++入门(4)内联函数、auto关键字、范围for、nullptr

内联函数、auto关键字、范围for、nullptr

wangtianTTT的博客 1927

内联函数|auto关键字|范围for的语法|指针空值

使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它,大家可思考下为什么?C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得return 10;auto b = a;//auto e;无法通过编译,使用auto定义变量时必须对其进行初始化return 0;【注意】

2301_79811170的博客 1273

【C++干货基地】揭秘C++11常用特性:内联函数 | 范围for | auto自动识别 | nullptr指针空值

变量还能自动识别类型?C++11 的这些新语法你必须掌握让你的C++之旅快速打通任通二脉!

鸽芷咕的博客 2965

【哇! C++】内联函数、auto关键字、基于范围的for循环、指针空值nullptr

内联函数、auto、范围for、指针空值

jp_yc的博客 624

【C++基础四】内联函数和auto关键字

被inline修饰的函数被称为内联函数编译器会在编译时将内联函数展开展开后,没有函数调用建立栈帧的开销内联函数可以提升程序运行效率int main()return 0;从函数的反汇编代码可得知,调用一个函数,开辟栈帧时需要call指令内联函数:可以看到编译器直接将add函数内容放在了主函数里注意:debug模式下需要设置才能看到内联函数的反汇编。

2201_75570391的博客 773

【C++入门(下篇)】C++引用,内联函数,auto关键字的学习

C++引用,内联函数和auto关键字学习

m0_56069910的博客 1411

C++入门(二)“内联函数inline”,“关键字auto”,“范围for”,“指针空值nullptr”

在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它。C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。当在同一行声明多个变量时,这些变量必须是相同的类型,否则编译器将会报错,因为编译器实际只对第一个类型进行推导,然后用推导出来的类型定义其他变量。// 该行代码会编译失败,因为c和d的初始化表达式类型不同。

BoJerry777的博客 1044

更易理解的C++入门下(C++关键字、引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr)

更易理解的C++入门知识,囊括C++关键字、引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr

. 1715
上一篇: 引用(李逵?李鬼!)
下一篇: 类和对象——开始步入正轨
宴之敖者、
博客等级 码龄4年 131粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值