使用 const 声明函数参数时,区分“const int”至关重要' 和 'int const'。虽然它们看起来相同,但修饰符的顺序会改变声明的解释。
'const int' 声明一个常量(无法修改)且类型为 int 的变量。这里的重点是 const 限定符应用于 变量。
'int const',另一方面,声明一个int 类型的变量,也是常量。在本例中,const 限定符修改 类型,而不是变量。
那么,这两个函数相同吗?
<code class="c">int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; }</code>
是的,它们是等价的。向后阅读声明可以澄清这一点。
对于 'const int':
对于 'int const':
在这两种情况下,“a”既是整数又是常量。
但是,向后读取技巧在复杂声明中变得非常宝贵:
<code class="c">// "s" is a pointer to a char that is constant const char *s; // "t" is a constant pointer to a char char *const t = &c; // The char in "s" is constant, so you can't modify it *s = 'A'; // Can't do // The pointer in "s" is not constant, so you can modify it s++; // Can do // The char in "t" is not constant, so you can modify it *t = 'A'; // Can do // The pointer in "t" is constant, so you can't modify it t++; // Can't do</code>
请记住,在 C 中,const 数据成员可以在类声明或构造函数中初始化。而在 C 中,const 数据成员被视为符号常量,必须在声明中初始化,这使得它们非常接近 #define。
以上是C 和 C 中的'const int”与'int const”:它们真的相同吗?的详细内容。更多信息请关注PHP中文网其他相关文章!