可以使用以下代码示例来说明:
auto x = 3; // x is an int
x = 5; // ok
auto x = 3.0; // error: x already declared as int
x = 5.6; // error: x is an int
auto x = 'c'; // ok: x is a char
x = 5; // error: x is a char
编译器允许用户更改“auto”变量的类型,是因为“auto”关键字为自动类型推断,并不是变量类型的限制。一旦变量的类型被确定,就不能再更改它的类型。如果用户试图更改类型,则编译器会报错。