隐式类型转换
1.在c和c++中,顶层const在执行对象的拷贝操作时,不受什么影响;但底层const却不容忽视。
顶层const表示指针本身是个常量,底层const表示指针所指的对象是一个常量;
更一般的,顶层const可以表示任意对象是常量。
eg:
1 const int v2=1;//顶层const 2 int v1=v2;//正确,顶层const忽略 3 4 const int *p=NULL;//底层const 5 int *r=p;//错误,底层const不容忽略
1.1
常量整数0或者字面值nullptr能转换成任意指针类型;指向任意非常量类型的指针的都可以转换成void*;指向任意对象的指针都能转换成const void*.
2.
在大多数用到数组的表达式里,数组自动转化成指向数组首元素的指针。
当数组被用作 decltype关键字修饰或者作为取地址符(&),sizeof以及typeid等运算符的运算对象时,上述转换不会发生。同样的,如果用一个引用来初始化数组,上述转换也不会发生。
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并获取更多隐藏干货,QQ交流群:816747642 微信公众号:Crystal软件学堂
![](https://images.cnblogs.com/cnblogs_com/yangguang-it/1907263/o_201227061707QQ20201227141844.png)
![](https://images.cnblogs.com/cnblogs_com/yangguang-it/1704156/o_200415115115qrcode_for_gh_5c7d1da35871_258.jpg)
作者:Crystal软件学堂 bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |