Avatar

最新评论

最新留言

链接

3.5 const限定修饰符

2008年5月03日 00:02 | Comments(0) | Category:未分类 | Tags:

1. const对象的地址只能赋值给指向const对象的指针,但是,指向const对象的指针可以被赋以一个非const对象的地址。

const double *pc = 0;
const double minWage = 9.60;

//OK:不能通过PC修改minWage
pc = &minWage;

double dval = 3.14;

//OK: 指向const对象的指针可以被赋以一个非const对象的地址
pc = &dval;

dval = 3.14159;//OK
*pc = 3.14159;//错误
 

2. 在实际程序中,指向const的指针常被用作函数的形式参数,它作为一个约定来保证:被传递给函数的实际对象在函数中不会被修改。

3. 我们可以定义一个指向非const对象的const指针。

int errNum = 0;
int *const curErr = &errNum;

3.9数组类型

2008年4月30日 09:29 | Comments(0) | Category:C Primer 手摘 | Tags:

1.非const的变量不能用来指定数组的维数。,非const对象只能在运行时刻访问其值,故它作为数组维数是非法的。

2.字符数组可以用一个由逗号分开的字符文字列表初始化,文字列表可以用花括号括起来,也可以用一个字符串文字初始化。两种形式并不等价,字符串常量包含一个额外的终止空字符:

const char ca1[] = {‘C’,‘+’,‘+’}
const char ca2[] = "C++";

   ca1 的维数是3,ca2的维数是4。下面的声明将被标记错误:

//"Daniel"是7个元素
const char ch3 [6] = "Daniel";