【c++】【第6.2节-推断类型】auto和typeid的知识

概述

今天学到了c++的【推断类型】,做个笔记。
推断类型,就两个关键字,auto和typeid。

1、auto关键字
auto作用是用于声明变量为自动变量,auto可以在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型。

2、typeid关键字
在c++中,typeid用于返回指针或引用所指对象的实际类型。
注意:typeid是操作符,不是函数!
运行时获知变量类型名称,可以使用 typeid(变量).name()。

3、示例及讲解:

(1)示例:

auto a{ 200 } ;
auto b{ 100LL } ;

std::cout << "变量a的类型为:" << typeid(a).name() <<std::endl;
std::cout << "变量b的类型为:" << typeid(b).name() <<std::endl;

输出结果为:
变量a的类型为:int
变量b的类型为:_int64

(2)问题:在这里,为啥不显示b的类型为long long,而是_int64??

答:其实,在底层,longlong类型就等同于_int64

(3)为了回答第(2)个问题,我们继续往下学习。这时候,我们输出一个long类型看看就知道怎么回事了。

auto a{ 100 } ;   //int类型
auto b{ 200LL } ;	//longlong类型
auto c{ 300L } ;    //long类型

std::cout << "变量a的类型为:" << typeid(a).name() <<std::endl;
std::cout << "变量b的类型为:" << typeid(b).name() <<char(10);     //这里的char(10)等同于std::endl。就是换行。
std::cout << "变量c的类型为:" << typeid(c).name() <<std::endl;

输出结果为:
变量a的类型为:int
变量b的类型为:_int64
变量c的类型为:long

(4)在(3)的基础上,我们看看char 32

auto a{ 100 } ;   //int类型
auto b{ 200LL } ;	//longlong类型
auto c{ 300L } ;    //long类型
auto d{ U'A' } ;     //讲解用ut32的标准来输出,看看结果如何


std::cout << "变量a的类型为:" << typeid(a).name() <<std::endl;
std::cout << "变量b的类型为:" << typeid(b).name() <<char(10);     //这里的char(10)等同于std::endl。就是换行。
std::cout << "变量c的类型为:" << typeid(c).name() <<std::endl;
std::cout << "变量d的类型为:" << typeid(d).name() <<char(10);

输出结果为:
变量a的类型为:int
变量b的类型为:_int64
变量c的类型为:long
变量d的类型为:char_32t //用ut32的标准来输出,完美无缺,和我们前面需要的结果一致。

关于auto和typeid的含义以及用法为以上的,通过敲代码来理解一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡先森ia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值