C++的auto究竟是何方神圣

这篇具有很好参考价值的文章主要介绍了C++的auto究竟是何方神圣。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


C++的auto究竟是何方神圣,【小梦C嘎嘎——启航篇】,c++,java,开发语言

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
C++的auto究竟是何方神圣,【小梦C嘎嘎——启航篇】,c++,java,开发语言

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下! 都是精华内容,可不要错过哟!!!😍😍😍

auto(C++ 11) 的使用细则

auto是什么?

auto最早产生的,其实是在C++98,后面C++对auto进行了全新的定义。本篇文章讨论的是C++ 11的auto。auto,主要是用来自动推导类型的一个关键字。随着程序越来越复杂,程序中用到的类型的也越来越复杂。主要体现在:

  • 类型太长;
  • 含义不明确容易出错。

有人可能会说,可以用typedef来给类型定义,但是我们有这样的现实需求:在编程时,我们常常要把表达式的值赋值给变量。这就要求在声明变量的时候,必须知道表达式值的类型。因此,单单靠typedef是无法满足的。而C++11的auto就可以根据表达式的值自动推导出类型。仅仅使用auto就能够代替一长串的类型名,简化了代码,也不容易出错。

auto声明的变量是在什么时期被编译器推导出来呢?

在C++11中,auto不再是C++98中做一个存储类型指示符,而是作为一个新的类型指示符来指示编译器。auto声明的变量是在编译期由编译器推导出来的。

为什么使用auto进行定义变量时,必须进行初始化?

因为在编译阶段,编译期需要根据表达式的结果推导出auto的实际类型。因此,auto比非是是一种"类型"声明,是类型声明时的占位符。当在编译时期,再替换为其实际类型。

auto 的使用场景

auto与指针和引用结合使用的场景

用auto声明初始化指针时,用auto 和auto* 都没有任何的区别。但是,用auto声明初始化引用时,auto必须加&。

这里举一个例子:

int main()
{
	int x = 10;
	auto a = &x;
	auto* b = &x;
	auto& c = x;
	cout << typeid(a).name() << endl;
	cout << typeid(b).name() << endl;
	cout << typeid(c).name() << endl;

	return 0;
}

上段程序的运行结果为:

C++的auto究竟是何方神圣,【小梦C嘎嘎——启航篇】,c++,java,开发语言

在一行中定义多个变量。

auto支持在一行中同时定义多个变量。但是需要注意的是,这些变量必须都是同一个类型的变量。因为编译器智慧根据auto第一个变量进行对其类型的推导,然后根据推导出的类型去定义后面的变量。如果前后变量类型不一样就会导致编译错误。

    auto a = 1, b = 2;
	auto c = 1.1, d = 2.2;
	cout << a << " " << b << endl;
	cout << c << " " << d << endl;

C++的auto究竟是何方神圣,【小梦C嘎嘎——启航篇】,c++,java,开发语言

  • 注意不要和C++98的auto混淆。C++11给auto进行了全新的定义,只保留了auto作为类型指示符的用法。
  • auto在范围for中起到非常重要的作用。也在lambda表达式等进行搭配使用。
	auto a = 1.1, b = 2;
	auto c = 1.1, d = 2.2;
	cout << a << " " << b << endl;
	cout << c << " " << d << endl;

C++的auto究竟是何方神圣,【小梦C嘎嘎——启航篇】,c++,java,开发语言

auto不能推导类型的场景有哪些?

  • auto不能用来作为函数的参数。 原因:因为编译器不能够对auto什么的变量进行实际类型的推导。
  • auto不能直接用来声明数组。

总结撒花💞

   希望大家通过阅读此文有所收获
   😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘文章来源地址https://www.toymoban.com/news/detail-636372.html

到了这里,关于C++的auto究竟是何方神圣的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【小梦C嘎嘎——启航篇】string介绍以及日常使用的接口演示

        😎博客昵称:博客小梦 😊最喜欢的座右铭:全神贯注的上吧!!! 😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主! 😘博主小留言:哈喽! 😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不

    2024年02月12日
    浏览(24)
  • 创宇区块链|无聊猿项目“又 双 叒 叕” 遭受钓鱼攻击,网络钓鱼究竟是何方神圣

    北京时间2022年6月5日,知道创宇区块链安全实验室 监测到著名NFT项目(无聊猿)的 Discord 社群再次遭受了网络钓鱼攻击,造成约 200 枚以太币的损失。在此之前,著名歌手周杰伦在愚人节当天就曾遭受网络钓鱼攻击,导致其库存中的无聊猿 NFT 被黑客转移。 近年来,我们发现

    2023年04月24日
    浏览(40)
  • GraalVM到底是何方神圣?

    JVM实现了跨平台,使得一次编译即可到处运行,但是詹姆斯·高斯林没有跟你说的是,应用运行之前要先启动JVM虚拟机,然后还要加载一大批的类、并做链接和初始化等步骤,而使得光启动一个JVM就得花一大把时间,JVM启动完之后才能执行应用程序本身的启动工作,比如启动

    2023年04月21日
    浏览(30)
  • 云桌面直接当电脑用?云桌面到底是何方神圣

    云桌面 作为计算机技术的一大创新,目前正在逐渐改变着人们对计算机使用的方式和观念,而云桌面的出现也让我们将电脑的使用体验提升到了一个新的层次,那么,云桌面究竟是何方神圣?我们来一探究竟。 云桌面,也称为虚拟桌面或桌面即服务(Desktop as a Service, DaaS),是

    2024年01月16日
    浏览(29)
  • (小伞每日论文速读)2023视觉领域的SOTA!InternImage究竟何方神圣?

    本篇文章的相关图片来源于论文:InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions 论文链接如下:https://arxiv.org/pdf/2211.05778.pdf 碍于本人的知识水平所限,本篇文章的总结可能存在不妥之处 如作为参考,请谨慎推理内容的真实性 欢迎各路大佬指出问题! 领

    2024年02月06日
    浏览(33)
  • 【C++笔记】C++启航之为C语言填坑的语法

    我们都知道C++其实就是C语言的升级,那么在“升级”最初阶段就是要对一些在C语言中不足的语法进行改进,这些改进能让我们省很多的力并且代码写起来也比较简洁。 C++引入命名空间主要是为了弥补在C语言中不能存在同名变量或函数的这个语法漏洞。 我们知道在C语言中,

    2024年02月13日
    浏览(32)
  • C嘎嘎~~ 【初识C++ 下篇】

    相信大家小时候, 肯定有小名、绰号、亲朋好友的昵称… … 这些称呼,在一定程度上就是你自己本人。 假如,你的小名叫做二蛋, 别人喊二蛋的时候, 你就会不由自主地回头去确定是否是在喊你… 想想这些, 儿时的回忆就渐渐涌上心头, 时而捧腹大笑, 时而陷入沉思。

    2024年02月05日
    浏览(25)
  • C嘎嘎~~[谈谈C++的一些优化]

    通过以前C语言的学习, 我们知道了有一种 具有临时性的, 没有名字的变量 — — 匿名变量. 那么我们的对象应该也有这个特性 — — 匿名对象 匿名对象, 即没有名字的对象, 生命周期就在当行 匿名对象的一般表现方式👇👇👇 🗨️证明一下, 匿名对象的生命周期就在当行 ??

    2024年02月06日
    浏览(26)
  • [C++]命名空间等——喵喵要吃C嘎嘎

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 C++总览,后面细说 命名空间  命名空间的定义 命名空间的使用 C++的输入与输出 缺省参数 函数

    2024年02月07日
    浏览(32)
  • [C++]默认成员函数等——喵喵要吃C嘎嘎3

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 类的实例化 类对象模型 如何计算类对象的大小 类对象的存储方式猜测 this指针 C语言和C++实现Stack的

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包