3.5 const限定修饰符
2008年5月03日 00:02 | Comments(0) | Category:未分类 | Tags:const
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;//错误
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;
int *const curErr = &errNum;
3.9数组类型
2008年4月30日 09:29 | Comments(0) | Category:C Primer 手摘 | Tags:数组 const
1.非const的变量不能用来指定数组的维数。,非const对象只能在运行时刻访问其值,故它作为数组维数是非法的。
2.字符数组可以用一个由逗号分开的字符文字列表初始化,文字列表可以用花括号括起来,也可以用一个字符串文字初始化。两种形式并不等价,字符串常量包含一个额外的终止空字符:
const char ca1[] = {‘C’,‘+’,‘+’};
const char ca2[] = "C++";
const char ca2[] = "C++";
ca1 的维数是3,ca2的维数是4。下面的声明将被标记错误:
//"Daniel"是7个元素
const char ch3 [6] = "Daniel";
const char ch3 [6] = "Daniel";