const ref和const指针之间的区别,c ++

Jja*_*ang 2 c++ pointers const reference

我想知道c ++中const ref和const指针之间的区别是什么.当我宣布某事为const ref时,我可以改变它的值吗?或者const继续对象?因为我知道const指针意味着你不能改变POINTER,但你可以改变它指向的VALUE.

例如:

const char& a; // ?
const char* a; // pointer is const
Run Code Online (Sandbox Code Playgroud)

use*_*604 5

Fred const&x;

它表示x对Fred对象建立别名,但x不能用于更改Fred对象.

Fred const*p;

Fred const*p表示"p指向常量Fred":Fred对象不能通过p更改.

Fred*const p;

Fred*const p表示"p是指向Fred的const指针":你不能改变指针p,但你可以通过p改变Fred对象.


可以将最后一个组合起来得到:

Fred const*const p;

Fred const*const p表示"p是指向常量Fred的常量指针":你不能改变指针p本身,也不能通过p改变Fred对象.

有关此更多信息,请访问此链接.