C++中auto关键字怎么使用
今天小编给大家分享一下C++中auto关键字怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
前提引入
1.类型名,在绝大多数编程时,我们都会引入类型来定义一个我们需要的数据。
类型众多,偶尔我们会遇见一串类型名,使用起来无比复杂。存在拼写错误,含义不明确导致出错的问题。
列如:
std::map<std::string, std::string> m{ { "apple", "苹果" }, { "orange", "橙子" },
{"pear","梨"} };
std::map<std::string, std::string>::iterator it = m.begin();
在这串代码中,std::map<std::string, std::string>::iterator 是一个类型,但是该类型太长了,特别容易写错。如何简化呢。
在C中,typedef 作为一个可以取别名的一个关键字。确实可以省事许多,却任然存在缺陷。
typedef std::map<std::string, std::string> Map;
若 typedef 为指针取了别名。存在小问题。
typedef char* pstring;
int main()
{
const pstring p1; // 编译成功还是失败?
const pstring* p2; // 编译成功还是失败?
return 0;
}
C++是怎么做的呢,设计师为了不想写复杂的类型,引入了auto关键字。
auto :
1.在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量
2.C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得
注:既然auto作为推导而得,在使用auto时,必须初始化。
auto 的使用场景
1. auto 在推导指针是,不必再加*号;
2.auto在使用引用时,必须遵循规则加上&号;
3.不能作为函数的参数使用
4.不能直接用来声明数组。
5.一行多个数据推导必须同类型。
int main()
{
//1
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;
*a = 20;
*b = 30;
c = 40;
//5
void TestAuto()
{
auto a = 1, b = 2;
auto c = 3, d = 4.0; //错
}
return 0;
}
相关内容
这些是最新的
热门排行
- THINKPHP5+GatewayWorker+Workerman 开发在线客服系统
- 在手机浏览器网页中点击链接跳转到微信界面的方法
- 尊云网站目录系统 ThinkPHP5网站分类目录程序 v2.2.221011
- CentOS 7安装shadowsock(一键安装脚本)
- AdminTemplate 基于LayUI 2.4.5实现的网站后台管理模板
- 用NW.js(node-webkit)开发多平台的桌面客户端
- PHP生成随机昵称/用户名
- THINKPHP5网站分类目录程序 尊云网站目录系统
- 织梦(DEDECMS)微信支付接口 微信插件
- 基于LayUI开发的 网站后台管理模板 BeginnerAdmin
- 响应式后台网站模板 - AMA.ADMIN
- layuiAdmin后台管理模板 Iframe版
- LayUI 1.0.9 升级 至 LayUI 2.1.4 方法
- 简洁清爽的会员中心模板
- jQuery幸运大转盘抽奖活动代码