首页 >后端开发 >C++ >C/C 指针声明:`char* p` 与 `char *p` – 哪种风格最好?

C/C 指针声明:`char* p` 与 `char *p` – 哪种风格最好?

Susan Sarandon
Susan Sarandon原创
2024-12-05 18:47:09865浏览

C/C   Pointer Declaration: `char* p` vs. `char *p` – Which Style is Best?

C/C 中的指针变量声明:理解样式

在 C/C 中声明指针变量引发了关于两种表示法的争论:

(a) 字符* p;
(b) char *p;

两种风格都有效,但选择反映了不同的编程观点和侧重点。

风格(a):强调表达式

这种风格对待指针变量(例如,p)作为单个实体,其中星号 (*) 是名称声明的一部分。从语法的角度来看,星号绑定到名称 p 并指示变量的类型(例如,指向 char 的指针)。这种方法与传统的 C 观点一致,即强调表达式并将声明视为必要的形式。

样式 (b):强调类型

相反,样式(b) 更加重视类型。它认为星号 (*) 是类型规范的一部分(例如,指向 char 的指针)。这种风格更符合 C 编程范式,它非常注重类型和面向对象原则。

Bjarne Stroustrup 的观点

Bjarne Stroustrup, C 的创建者,提倡后一种风格 (int p;),因为它在指定方面很清晰变量的类型 (int*)。他强调这种方法更符合 C 的高级功能。

上下文注意事项

在一行中声明多个指针变量时,将星号与变量一起使用名称(样式(a))可能会导致混乱。例如:

char c, d;

在这种情况下,可能不太清楚 c 和 d 都是指向字符的指针。使用带有类型规范(样式 (b))的星号可以解决这种歧义:

char c, d;

结论

风格(a)和风格(b)之间的选择最终是一个个人喜好和编程哲学的问题。对于来自 C 背景的人来说,样式 (a) 可能更直观,而样式 (b) 更符合 C 的以类型为中心的方法。

以上是C/C 指针声明:`char* p` 与 `char *p` – 哪种风格最好?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn