当使用数组作为一个 auto
(参见 2.5.2节,第61页)变量的初始值时,推断得到的类型是指针而非数组:
int ia[]= {0,1,2,3,4,5,6,7,8,9}; // ia是一个含有10 个整数的数组
auto ia2(ia); // ia2 是一个整型指针,指向 ia 的第一个元素
ia2 = 42; // 错误:ia2是一个指针,不能用int值给指针赋值
当使用 decltype
关键字(参见 2.5.3 节,第 62 页)时上述转换不会发生,decltype(ia) 返回的类型是由10个整数构成的数组:
decltype(ia) ia3={0,1,2,3,4,5,6,7,8,9}; // ia3是一个含有10个整数的数组
ia3 = p; // 错误:不能用整型指针给数组赋值
ia3[4]= i; // 正确:把i的值赋给 ia3 的一个元素
《C++ Primer》 P105
标签:decltype,auto,C++,数组,ia,ia3,ia2 From: https://www.cnblogs.com/huvjie/p/18423997