指针声明中的 const 放置:揭开谜团
在 C 中, const 关键字可用于修改由指针或指针本身。这就引出了一个问题:为什么“const T”和“T const”都有效,应该使用哪一个?
历史起源
这种看似随意的选择的原因可以追溯到 C 语言的早期。最初的 C 语法被定义为从左到右解析输入,在遇到每个标记时对其进行处理。
解析带有星号 (*) 的声明时,解析器将在遇到该声明之前完成该声明的处理常量。这意味着 const 可以在星号之前或之后应用,而不影响声明的语义。
从左到右解析和限定符放置
这种从左到右的解析机制也会影响 const 在函数指针声明中的放置。例如,“void function1(void)”声明一个返回 void 的函数,而“void (* function2)(void)”声明一个指向返回 void 的函数的函数指针。
选择哪种语法
最终,选择使用哪种语法是一个偏好问题。但是,以下准则可能会有所帮助:
一般情况下,建议将 const 放在左侧,以清楚地表明数据的预期不变性。当使用共享指针或对 const 对象的引用时,这一点尤其重要,以避免意外的意外。
以上是C 指针中的常量放置:左或右,以及为什么它很重要?的详细内容。更多信息请关注PHP中文网其他相关文章!