auto ia2(ia) 应该如何理解?
c++吧
全部回复
仅看楼主
level 5
zrlotus 楼主
最近读C++ primer
第105页,讲指针和数组
有这么两行代码:
int ia[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
auto ia2(ia);
上面那行代码没问题,问题在第2行
给的注释是“ia是一个整形指针,指向ia的第一个元素”
后面又解释“编译器实际执行的初始化过程类似于下面的形式:
auto ia2(&ia[0]); // 显然ia2的类型是int *”
我理解不能啊
不管是数组还是指针,都不能这样初始化吧?
我记得类才可以?
基本类型加括号不是函数的形式吗?
网上查了会儿,没有找到更详细靠谱的解释
求指教,谢谢
2020年08月16日 14点08分 1
level 7
基本类型是支持直接初始化的。只有类的数据成员的类内初始值不能直接初始化。数组名在绝大部分情况下默认都是指向首元素的指针,所以 auto 是 int* 类型
(直接初始化指的就是用括号初始化,=是拷贝初始化)
2020年12月01日 06点12分 7
感谢老哥
2022年05月12日 10点05分
1