当前位置: 首页 >知识百科 > 内容

字符串指针数组(字符串指针)

知识百科
导读 使用const的好处在于它允许指定一种语意上的约束——某种对象不能被修改——编译器具体来实施这种约束。通过const,你可以通知编译器和其他...
2024-07-15 21:58:39

使用const的好处在于它允许指定一种语意上的约束——某种对象不能被修改——编译器具体来实施这种约束。

通过const,你可以通知编译器和其他程序员某个值要保持不变。

只要是这种情况,你就要明确地使用const ,因为这样做就可以借助编译器的帮助确保这种约束不被破坏。

const关键字实在是神通广大。

在类的外面,它可以用于全局或名字空间常量,以及静态对象(某一文件或程序块范围内的局部对象)。

在类的内部,它可以用于静态和非静态成员。

对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const,还有,两者都不指定为const:char *p = "hello"; // 非const指针, // 非const数据const char *p = "hello"; // 非const指针, // const数据char * const p = "hello"; // const指针, // 非const数据const char * const p = "hello"; // const指针, // const数据语法并非看起来那么变化多端。

一般来说,你可以在头脑里画一条垂直线穿过指针声明中的星号(*)位置,如果const出现在线的左边,指针指向的数据为常量;如果const出现在线的右边,指针本身为常量;如果const在线的两边都出现,二者都是常量。

在指针所指为常量的情况下,有些程序员喜欢把const放在类型名之前,有些程序员则喜欢把const放在类型名之后、星号之前。

所以,下面的函数取的是同种参数类型:class widget { ... };void f1(const widget *pw); // f1取的是指向 // widget常量对象的指针void f2(widget const *pw); // 同f2因为两种表示形式在实际代码中都存在,所以要使自己对这两种形式都习惯。

const的一些强大的功能基于它在函数声明中的应用。

在一个函数声明中,const可以指的是函数的返回值,或某个参数;对于成员函数,还可以指的是整个函数。

版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。