const是变量变常量?如果你认为仅仅如此,那你就大错特错了,const名叫常量限定符,用于限定变量的,修饰变量后,编译器就无法修改了。
现在讲讲它与指针之间的用法:修饰指针
- int b=10;
- int a=15;
-
- 第一种
- const int* p=&b;
- *p=20; //error 不可以修改变量的值
- p=&a; //ok 可以改变指针值向别的常量
-
- 第二种
- int* const p=&b;
- *p=20; //OK 可以修改变量的值
- p=&a; //error 不可以改变指针值向别的常量
第一种是常量指针
当为常量指针,不可以通过修改变量的值,但是可以让指针指向别的变量。
第二种是指针常量
无法指向别的变量,但是可以通过指针修改它所指向的变量的值。
总结:如果const位于*的左边,则const修饰指针指向的变量,值无法修改 如果const位于*的右边,则const修饰指针的本身,指针不可以移动
口诀:左定值,右定向,const修饰不变量
小提示:可以再想想const和哪些又有什么有趣的联系呢?