在C 中声明const Pointer是常见的

Is it common to declare const pointers in C++?

本文关键字:常见 Pointer const 声明      更新时间:2023-10-16

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(大多有显着差异。因此,许多人不遵循,甚至可能不知道这种风格。

但是,如果您喜欢的话,请随时遵循样式。