文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C++中auto关键字的使用

2023-05-15 06:05

关注

前提引入

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;
}

到此这篇关于C++中auto关键字的使用的文章就介绍到这了,更多相关C++ auto关键字内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯