指向常量的指针与常量指针初始化有关问题
指向常量的指针与常量指针初始化问题
请问各位:
const double *cptr是指向常量的指针,定义的时候是不是可以不初始化,而在以后赋值?
double *const cptr是常量指针,定义的时候是不是必须要初始化?
------解决方案--------------------
yes
------解决方案--------------------
1 常量指针!如 int b, c; int * const a = &b;
表示a是一个常量指针它指向变量b的内存。但是因为是常量指针所以不能再用a指向其他变量,如 a = &c; 错误!可以修改指向内存的值,如:*a = 20; BTW 常量指针声明的时候必须向我那样赋初值。
2 指向常量的指针!如 int b, c; int const *a; a = &b; a = &c;
都可以,唯独它指向的内存不能被修改。如:*a=20;这是违法的!错误!
这就是主要区别!
------解决方案--------------------
是的,你要有疑问,自己写下代码测下不就知道了
请问各位:
const double *cptr是指向常量的指针,定义的时候是不是可以不初始化,而在以后赋值?
double *const cptr是常量指针,定义的时候是不是必须要初始化?
------解决方案--------------------
yes
------解决方案--------------------
1 常量指针!如 int b, c; int * const a = &b;
表示a是一个常量指针它指向变量b的内存。但是因为是常量指针所以不能再用a指向其他变量,如 a = &c; 错误!可以修改指向内存的值,如:*a = 20; BTW 常量指针声明的时候必须向我那样赋初值。
2 指向常量的指针!如 int b, c; int const *a; a = &b; a = &c;
都可以,唯独它指向的内存不能被修改。如:*a=20;这是违法的!错误!
这就是主要区别!
------解决方案--------------------
是的,你要有疑问,自己写下代码测下不就知道了