4. auto 自动类型推断

在 C++11 的标准中,原有的 C 语言的关键字 auto 已经放弃了自动存储期的变量的含义,该关键字重新定义为自动类型推断的关键字。

在 C++11 标准中 auto 关键字是类型占位符,用于自动推断类型。当书写的类型名称比较复杂且经常变化时,可以使用 auto 代表其类型,该类型会根据此变量的初始值的类型自动推断得出。

语法

auto 变量名 = 表达式;

说明

示例

#include <iostream>

using namespace std;

int main(int argc, char * argv[]) {
    const int x = 100;
    const int &rx = x;

    auto pi = 3.14;  // auto 推断为 double 类型
    auto i = 200;  // auto 推断为int 类型
    auto b = true;  // b 的类型是 bool
    auto str = "hello";  // str 的类型是 const char*
    auto ax = x;  // auto 推断为int类型,丢弃const属性
    auto ay = rx; // auto 推断为int类型,丢弃const和引用属性
    const auto cx = rx;  // auto 推断为int类型,cx 为 const int 类型
    const auto &crx = rx;  // crx 为 const int &类型 

    return 0;
}

实验

尝试使用 auto 关键字来定义数据类型。