栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

[C++]auto类型说明符

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[C++]auto类型说明符

auto类型说明符:当编程时不清楚此变量的类型时,就可以使用auto说明符让编译器去根据初始值来判断此变量的类型。

要点:

        1.当使用了auto说明符时语句中所有变量的初始基本数据必须一样。

auto a=0,*p=0;
auto a=0,p=3.15 // err,a与p的类型不一样

        2.当auto说明符,中用的是引用进行初始化时,实际上初始化的数据类型是引用的对象。

int i=10,&r=i;
auto a=r;  // auto a=i;

        3.auto一般会忽略顶层const,同时底层const则会保留下来。

int i=0;
const int ci=i,&cr=ci;
auto b=ci; // 这里b是一个整数,顶层const被忽略掉了
auto d=&i; // 这里d是一个指向int型的指针。
auto e=&ci; // 这里e是一个指向int型的常量指针,底层const被保留了下来

解释:对常量对象取地址是一种底层const,为什么是一种底层const呢?因为:ci是一个int型常量,那么ci的值和地址就不能变,既然不能变,那么&i也就不能变,即e所指的对象不能变,而要有这个特性,那么e的类型就只能是const int *const e,但是auto会忽略掉顶层的const,所以就只能是const int *e;,如果要要求变成即指向常量的常量指针,则只需要在auto前面加上const即可,如下。

        4.如果需要推断出的auto是一个顶层const,则需要明确指出:

const auto f=&ci; // 这样总的类型就会变成 const int *const f=&ci;
const auto f=ci; // 等价于 const int f=ci;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1022243.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号