设为首页 加入收藏

TOP

字符串指针与字符指针const
2011-12-27 10:14:43 】 浏览:2356
Tags:字符串 指针 字符 const

使用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可以指的是函数的返回值,或某个参数;对于成员函数,还可以指的是整个函数。
参考资料:http://hi.baidu.com/freeemperor/blog/item/19d97606285c8278030881fa.html

 

说明::const char *p 是字符常量指针,只不过有些限制,就是指针不能变,指针指向的东西可以变。比如:本来p=&a,就不能再修改p了,要是p=&b,这样就错了。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇浮点数 下一篇堆与栈区别

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

windows编程基础

linux编程基础

C/C++面试题目