C++ 数组的 auto 和 decltype
当使用数组作为一个 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-09-21 观察者模式 Observer / Event
2022-09-21 面向对象的设计原则
2022-09-21 计算机系统课程和重构设计模式图书推荐