auto关键字

定义:
auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。

int TestAuto()
{
	return 10;
}
int main()
{
	int a = 10;
	auto b = a; // int
	auto c = 'a'; // char
	auto d = TestAuto(); // int
	//auto e; 无法通过编译,使用auto定义变量时必须对其进行初始化
	return 0;
}

auto使用于循环中

void main()
{
	int array[] = { 1, 2, 3, 4, 5 };
	for(auto& e : array)
	e *= 2;
	for(auto e : array)
	cout << e << " ";
}
  • 必须初始化
    //auto e; 无法通过编译,使用auto定义变量时必须对其进行初始化
  • 编译的时候自动替换成变量实际的类型
  • typeid(b).name()可以显示类型
  • 在同一行定义多个变量,必须是同类型的
    auto c = 3, d = 4.0; // 该行代码会编译失败,因为c和d的初始化表达式类型不同
  • auto不能做参数
    void TestAuto(auto a)
  • auto不能定义数组
    auto b[3] = a
  • auto 不能循环使用指向数组的指针
  • 必须要有迭代输出的范围
void TestFor(int array[])
{
	for(auto& e : array)
	cout<< e <<endl; // error
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值