c++ - 为什么不能引用指针以用于常量分配字符串文字

标签 c++ pointers reference constants const-pointer

我可以使指针指向字符串文字,它将字符串文字转换为常量指针,但对指针的引用不能分配字符串文字,例如:

 const char *&text = "Hello, World\n"; 
有一个错误,编译器说我不能将数组转换为指针引用,我很好奇,为什么它不正确?

最佳答案

这是不正确的,因为字符串文字不是指针。它是一个数组。文字确实隐式转换为指向数组第一个元素的指针(就像所有数组一样),但转换的结果是一个右值。并且对非常量的左值引用不能绑定(bind)到右值。
根本没有理由这么写。添加不必要的间接性没有任何好处。 const char* text = "Hello, World\n";更简单,更正确。

关于c++ - 为什么不能引用指针以用于常量分配字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62515113/

相关文章:

c++ - 如何在 ACE 中获取本地时间而不是 UTC 时间?

c++ - "Backporting"nullptr 到 C++-pre-C++0x 程序

c - 重新创建 strstr() 函数

pointers - 一个人怎么能用 F# 编写 Duff 的设备?

c# - 冗余 "using"是否会降低性能

c++ - 无法在 AWS C++ SDK 中设置区域

c++ - 使用指针作为类(class)成员是一种好习惯吗?

vb.net - Windows 脚本宿主对象模型的 Interop.IWshRuntimeLibrary.dll 引用与可执行文件相同的目录

c++ - 为什么 'const' 在这两种情况下表现不同?

c++ - CMake:什么是可能的目标源类型,它们可以扩展吗?