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中文网其他相关文章!