来源:IIEEG02-25-2011 第一种const指针: const double *pc = 0; 这种类型的定义表示pc指针指向的内存的内容不可通过pc来修改! const 变量的地址只能赋给const指针: const double *pc = 0; const double minWage = 9.60; pc = &minWage; 但是const指针也可以指向非const变量 double dval = 3.14; // ok: 不能通过pc 修改dval // 虽然dval 本身不是一个常量 pc = &dval; // ok 注意!即使是指向非const变量也不可以通过pc修改变量的内容,因为pc有const修饰. dval = 3.14159; // ok *pc = 3.14159; // 错误 正因为这种const指针可以保证指向得内容不通过这个指针被修改,所以大家才常用下面的函数方式: int strcmp( const char *str1, const char *str2 ); 第二种const指针: int errNumb = 0; int *const curErr = &errNumb; 这一种是指针不能指向其他地址,只能指向初始化地址. 如果写出下面的代码就会发生错误: curErr = &myErrNumb; // 错误 第三种const指针: 这种const指针是钱两种的结合,使得指向的内容和地址都不能发生变化. const double pi = 3.14159; const double *const pi_ptr = π 总上,应该了解,不论那种类型的const指针都不能限制它指向的内存内容不被修改,最多是限制不通过它被修改,或者限制它自己不被修改而已. |
-
2011-05-25
-
2011-05-25
-
2011-05-25