在C 中声明const Pointer是常见的
Is it common to declare const pointers in C++?
c 样式强烈建议,如果我们不打算修改它们,则应将对象声明为const。因此,当我们声明一个指向不要重新分配的对象/变量的指针时,我们应该将其声明为const:
T* const pObject = new T();
似乎C 开发人员通常不遵守此规则,以防指针?
pointer 是一个对象。
如果您希望防止修改指针所持值,即使其在其寿命内仅保存一个地址,则是使其成为const。同样适用于任何其他对象类型的考虑因素也适用。
我怀疑您可能看不到的原因是C Kinda中的声明语法使这对类型感到不舒服。更不用说 pointee 是const的重要性。
是的,这是一个很好的做法,因为它可以避免您无意中更改参考。您可能可以更改代码中某个地方的变量的值,而无意中添加const
,请确保在任何地方都不会更改价值的变量。
指针只是一个包含地址的变量,但最终它是一个像其他任何一个变量。
您应该制作指针const
,其原因与简单的int
const
相同。因此,如果您有充分的理由具有正常的变量const
,则出于相同的原因,您也应该旨在使用const
指针。
C 社区中很常见(我会补充的是,很好的做法(,以将const
指示器声明为const
数据。
在C 中声明const Pointer是常见的?
它不如非const指针那么普遍(不要将其与指针与指向非const的指针相混淆;只是要清楚(。指针通常用作数组的迭代器。迭代需要修改迭代器。
,但这不是闻所未闻的。
T* const pObject = new T();
任何体面的编码样式都将主要建议不要使用裸露的指针。
因此,当我们声明指向不要重新分配的对象/变量时,我们应该声明const
在某个时候不重新分配指针是很少见的。除非您需要指向null的能力,否则建议在不需要重新分配时使用参考。
即使在您确实需要指针并且不需要重新分配的情况下,偏爱const对象而不是非const的情况也只是有用的样式指南。在现在被constexpr
取代的情况下(这使变量隐式const(大多有显着差异。因此,许多人不遵循,甚至可能不知道这种风格。
但是,如果您喜欢的话,请随时遵循样式。
- C++ - "!pointer"和"pointer == nullptr"的区别?
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- C++如何在向量中查找最常见的元素
- Printf 命令不打印时添加了查找常见除数的新代码
- 如何从向量或数组中选择最常见的数字?(前五名)C++
- "No-Const Pointer to Const "调用功能
- 打印二叉树中的常见元素
- "owned pointer"和 std::shared_ptr 的"stored pointer"有什么区别?
- 删除分配的 (?) 指针时"Pointer being freed was not allocated"
- 是否存在用于 C 或 C++ 中常见数学运算(例如最小值、最大值和平均值)的可导入库?
- 在 C++ 的自定义运算符中删除与删除[](不同于常见的删除与删除[]问题)
- 如何从文本文件中查找最常见的字母和出现次数?
- 对类的未定义引用,常见答案尚未解决
- C++ 中的构造函数、继承、堆栈、堆、this-pointer 和段错误
- "Called Object Type is Not a Function or Pointer" 与 typedef 和类
- 马洛克会在 C++17 年返回"invalid pointer value"吗?
- 查找字符串中最常见的字母
- c++为什么decltype(*pointer)会产生引用
- 指向对象生存期之外的已分配内存的指针是"invalid pointer[s]"还是"pointer[s] to an object"?
- 在C 中声明const Pointer是常见的