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

posted @   double64  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-09-21 观察者模式 Observer / Event
2022-09-21 面向对象的设计原则
2022-09-21 计算机系统课程和重构设计模式图书推荐
点击右上角即可分享
微信分享提示