C++ 常量指向文字的指针有效吗?
c++ is const pointer to literal valid?
我知道左值可以转换为常量引用。我很好奇我是否可以获得指向这些左值的指针。
如果我写
const int* p = &3; //ERROR: lvalue required as unary operand '&'
我收到此错误。然而
const int* p = &((const int&)3);
这将编译。在这种情况下,*p 的结果是否保证为 3?
这将构造一个临时int(3)
并将其绑定到常量引用。p
指出这是暂时的。临时的生存期延长以匹配引用的生存期 - 但引用本身是临时的,在分号处被破坏,留下p
悬而未决的指针。之后使用p
的任何尝试(除了为其分配新值(都会表现出未定义的行为。
相关文章:
- 调整大小后指向元素值的指针unordered_map有效?
- 如何在工厂方法中返回指向基于基础操作系统的派生类的有效指针
- 为什么在引用指针时将 const 放在 & 符号的左侧有效,而在右侧则无效?
- C++ 返回指向函数内定义的静态数组的指针是否有效?
- 通过指针调用模板类成员函数 [为什么这是有效的 c++]?
- free():在有效指针异常中-使用流读取巨大文件时
- 释放 std::vector 中指针内存的最有效方法是什么?
- C++ 常量指向文字的指针有效吗?
- 是否存在将长整型转换为指针有效的情况
- 将指针传递给函数在简单的情况下有效,但在"class" -izing 之后不起作用
- 在映射中插入更多元素后,指向 QMap 中元素的指针是否仍然有效?
- 指向派生类的指针中的"static_cast<Base*>(static_cast<void*>(派生))"何时有效?
- 如何有效地使用 std::async 对指针数组执行操作
- 当程序从该函数调谐器时,指向在函数中声明和定义的某些 C 字符串的指针不再有效.为什么?
- EIGEN地图类:将C阵列映射到VectorXD指针以有效的方式
- 如何检查指针后面的对象是否有效或已删除?
- C++数组超出范围访问以计算指针有效?
- 提升::进程间managed_shared_memory指针有效作用域
- 为什么const_cast away volatile只对指针有效?
- 为什么将const类型的智能指针强制转换为类型的智能指针有效?