const与指针的两种用法区别:
-
const int *p;//定义了一个指向常量的指针(也就是说不可通过指向常量的指针修改其对应的值)
例如:int a =100; const int *p; p = &a; ~~*p=20;~~ .//这是错误的用法,常量a的值不可以修改,*p的值是只读的。
-
int *const p2 ;定义了一个常量指针,这种指针只能指向固定的一个地址,即若已经指向了一个地址,则该指针不可再修改;但是可以通过该指针修改指向的值。
例如:int a =0; int *const p2 = &a; *p = 10;//合法 //若是再次赋值,则是不允许的 int b = 22; //!!!!!!!! p2=&b;//不允许!
所以在使用的时候要注意分清楚。