constint ic=20与int const ic=20一样么?
constint * pi与int const * pi一样么?
务必要记住const 与int哪个写前都不影响语义。
constint ic=20与int const ic=20,它们是完全相同的。
同样,const int * pi与int const * pi也是一样的。
如果定义完:const int *pi=&a后,执行下面操作,
pi=&b
程序会有问题么? 没问题,因为const修饰的是*pi,不是pi,所以pi可以重新赋值。
那么执行下面操作,
*pi=&b
程序会有问题么?有问题,因为你要注意,*pi已经是常量,是不能改变值的。
又来了,如果定义了int *const pi=&a,那么执行下面的操作
pi=&b;
程序会有问题么?有问题,因此pi是常量,不能改变值。
但执行*pi=b,就没有问题。
从上面的例子中我们需要注意,一定要看清楚 const修饰的是谁!!