自动存储持续性


  在默认情况下,在函数中声明的函数参数和变量的存储持续性为自动,作用域为局部,没有链接性。

  如果在代码块中定义了变量,则该变量的存在时间和作用域将被限制在该代码块内。

    int main()
    {
        int teledeli = 5;
        {
            cout << "Hello\n";
            int websight = -2;
            cout << websight << '' << teledeli << endl;
        }
        cout << teledeli << endl;
        return 0;
    }

  在 C++11 中,关键字 auto 用于自动类型推断。但在 C 语言和以前的 C++ 版本中,auto 的含义截然不同,它用于显式地指出变量为自动存储:

    auto float ford;

  由于只能将关键字 auto 用于默认为自动的变量,因此程序员几乎不使用它。它的主要用途是指出当前变量为局部自动变量。

  在 C++11 中,这种用法不再合法。制定标准的人不愿引入新关键字,因为这样做可能导致将该关键字用于其他目的的代码非法。考虑到 auto 的老用法很少使用,因此赋予其新含义比引入新关键字是更好的选择。