首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

读《Effective C++》的过程中遇到的有关问题

2013-04-09 
读《Effective C++》的过程中遇到的问题?在《Effective C++》(third edition)第一章的Item3-Use const wheneve

读《Effective C++》的过程中遇到的问题?
在《Effective C++》(third edition)第一章的Item3-Use const whenever possible一节中有如下语句:
const char *p=greeting;
char * const p=greeting;
const char * p=greeting;
请问它们分别是什么意思?又有何区别?
另外,还想请问各位C++中的const的作用是什么?
[解决办法]
const char *p=greeting;表示p为一个指向字符串常量的指针,p本身的值可以改变,但p所指向的字符串不能改变;
char * const p=greeting;表示p是一个常量指针,指向一个字符串,p本身的值不能改变,但p所指向的字符串的内容是可以改变的
[解决办法]
楼上就是正解
[解决办法]
不会有第二种解释了 
[解决办法]
c++中的const跟c中的cons是一样的。
c++中提倡完全用const替代宏定义常量,最重要的原因是因为const常量能被编译检查且能调试,宏常量不能。但这不应该说是宏常量的缺点,只能说是特点。

#define MAX_ELEMENTS  50
int  const max_eleemnts = 50;
上面两种方式都是定义了一个常量,但在上面这种情况下使用#define 比使用 congst 变量更好。因为只要允许使用字母值常量的地方都可以使用前者,比如声明数组的长度。const 变量只能用于允许使用变量的地方。
                                                                              --- 《C 和指针》
[解决办法]
上面错别字。。。
字母值 应为 字面值
[解决办法]
简单点说:const 靠近谁,就形容谁是常量不可变。
具体点说就如二楼。

const 用法很多,主要是用来定义变量,表示不可变。如const int a;
也可以用来形容形参。表示形参不能改。如void fn(const char *p)
还可以用来修改类成员函数。表示该函数内不能修改成员变量的值
void fn()const
{
}

热点排行