首页 > 代码库 > 深谈auto变量
深谈auto变量
1.c++中有一个关键字auto,c语言也有这么一个关键字,但是两者的意义大不相同。
2.c++中用auto定义的变量自动匹配赋值号右边的值的类型,具有自动匹配类型的作用,而c语言中auto只是声明一个变量为自动类型,说明这个变量的代码块生存期和分配在栈上,并且不能用来定义变量。
3.c++中auto可以起到泛型的作用,你不管给我传什么类型,我都可以识别,而且按类型使用这个变量。
4.下面看cpp测试代码
1 #include <iostream> 2 3 using namespace std; 4 5 /* 6 自动变量:自动匹配类型 7 auto num = pc;通用传入接口 8 decltype (num) anum;/通用备份接口 9 */ 10 11 void main() 12 { 13 14 auto a = 10;//将a解析为整数变量 15 auto b = 10.1;//将b解析为浮点数变量 16 17 int array[10]; 18 int i = 0; 19 for (auto arr : array)//增强for循环 20 { 21 arr = i++; 22 cout << arr << endl; 23 } 24 25 cout << "a = " << a<<endl;//a = 10 26 cout << "b = " << b<<endl;//b = 10.1 27 28 double c = 11.9; 29 double *pc = &c; 30 auto num = pc;//自动让num匹配pc类型, 31 cout << typeid(num).name() << endl;//typeid为一个结构体,这个结构体关于num,然后求其信息name,结果为double * 32 cout << typeid(c).name() << endl;//使用typeid(变量名).name()可以获取变量的类型信息 33 cout << typeid(pc).name() << endl; 34 //typeid(num).name() d; 这种做法不允许,应使用下面的做法 35 decltype (num) anum;//获取变量num的类型然后用这种类型定义一个变量anum 36 anum = &b; 37 38 cout << *anum << endl; 39 system("pause"); 40 41 }
5.再来看看运行结果
深谈auto变量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。