const在*左边和*右边的区别

int n=1,m=2;
const int* a=&n;
cout<<*a<<endl;
a=&m;
cout<<*a<<endl;

int* const b=&n;
cout<<*b<<endl;
*b=10;
cout<<*b<<endl;

const int* a中,const修饰变量,表示指针a指向的变量是一个常量,不可修改,但是这个指针本身可以指向别的地方。在函数传参的时候经常用这种方式传参,代表这个函数承诺不会改变传入的参数(传入const引用也可以做到)

int* const b中,const修饰指针,表示这个指针是一个常量,不可修改,只能指向一个地方,但是他指向的这个地方,里面的值是可以修改的。

 

posted @ 2022-01-25 10:37  Wangtn  阅读(253)  评论(0编辑  收藏  举报