auto是什么_auto C++

auto是什么_auto C++autoauto让编译器通过初始值来推算变量的类型——–因此,auto定义的变量必须有初始值.1.让引用对象作为初始值————————————–使用引用其实是使用引用的对象                                 inti=0,&c=i;                  a

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 auto

auto让编译器通过初始值来推算变量的类型——–因此,auto定义的变量必须有初始值.

1.让引用对象作为初始值

————————————–使用引用其实是使用引用的对象

                 
                   int i=0,&c=i;

                   auto a=c;//a是int型变量

2.auto与引用


————————————一般来说,auto会忽略顶层const.

                   const int i=0,&j=i;

                   auto a=i;       //a是一个int(而非const)

                   auto b=j;      //b是一个 int (非const)   等同于auto b=i;

                   auto p=&i;    //p是一个指向常量的指针(const int*),底层const



因此,当我们希望推断出来的auto是顶层const时,需要明确指出

const auto c=i;

————————————将引用的类型设置为auto,顶层const属性仍将保留

                  const int i=0;

                   auto &c=i;    //c为const int

————————————要在同一条语句中定义多个auto变量时,初始值必须是同一类型

                  
                  (符号*和&只从属于某个声明符,而非基本数据的一部分)

                     const int c=0;

                   auto &cr=c,*p=&c;   //错误,这里cr为 const int , p对应的auto为 int



decltype

 有的时候我们想用一个表达式的值推算出要定义变量的类型,但是又不想用该表达式的值初始化变量,这个时候可以选择decltype.它的作用是返回一个表达式的数据类型。

————————————与引用不同的是,它准确的返回顶层const和引用


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195836.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • hadoop默认对3个副本的存储策略和执行策略:「建议收藏」

    hadoop默认对3个副本的存储策略和执行策略:「建议收藏」hadoop默认对3个副本的存储策略和执行策略:

    2022年4月23日
    48
  • 史上超强最常用SQL语句大全

    史上超强最常用SQL语句大全史上超强最常用SQL语句大全,)1)DDL–数据定义语言用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter等2)DML–数据操作语言用来对数据库中表的数据进行增删改。关键字:insert,delete,update等3)DQL–数据查询语言用来查询数据库中表的记录(数据)。关键字:selewhere等4)DCL–数据控制语言用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT,REVOKE等

    2022年6月14日
    23
  • MySQL(4) 数据库增删改查SQL语句(整理集合大全)

    MySQL(4) 数据库增删改查SQL语句(整理集合大全)查看数据库showdatabases;使用数据库use数据库名;创建数据库CREATEDATABASE数据库名;删除数据库DROPDATABASE数据库名;创建表createtable表名(列名1类型(长度)[约束],列名2类型(长度)[约束],……);长度区别int类型带长度:不影响存…

    2022年6月29日
    23
  • springbootapplication运行机制_航空器运行阶段是指什么

    springbootapplication运行机制_航空器运行阶段是指什么SpringApplication运行阶段围绕run(String…)方法展开,该过程结合初始化阶段完成的状态进一步完善了运行时所需要准备的资源,随后启动Spring应用上下文,在此期间伴随SpringBoot和Spring事件的触发,形成完整的SpringApplication生命周期:SpringApplication准备阶段SpringApplication启动阶段SpringApplication启动后阶段1、SpringApplication准备阶段本阶段涉及的范围从run(St

    2025年10月10日
    2
  • 虚拟IP原理

    原文链接: http://xiaobaoqiu.github.io/blog/2015/04/02/xu-ni-iphe-ippiao-yi/                    http://www.cnblogs.com/crazylqy/p/7741958.html文中有两处用红色标记的文字,是博主认为错误的地方,故做了修改,若理解有误,还望指正。            …

    2022年4月5日
    108
  • Dirty deeds done dirt cheap_centos 8 stratis

    Dirty deeds done dirt cheap_centos 8 stratis文章目录[隐藏]TweakSwaponCentOS7TweakSwaponCentOS7Swapisquiteimportantonasmallvirtualmachinebutalsoonlargeservers.Ifyouhaven’tenabledSwapyetyoushouldcheckthefollowingguideh…

    2022年10月8日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号