加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

顶层const与底层const

发布时间:2020-12-15 00:23:10 所属栏目:C语言 来源:网络整理
导读:顶层const与底层const c++ 中有顶层const以及底层const之分 顶层const表示对象本身是const int const aint = 10; vector const avec; char * const ptr = NULL; // 顶层 const 不影响对象之间的赋值 int a = aint; // OK const int b = aint; // OK const in

顶层const与底层const

c++ 中有顶层const以及底层const之分

  • 顶层const表示对象本身是const

int const aint = 10;

vector const avec;

char * const ptr = NULL;

// 顶层 const 不影响对象之间的赋值

int a = aint; // OK

const int b = aint; // OK

const int c = a; // OK

vector d = avec; // OK

char * e = ptr; // OK

char const * f = ptr; // OK

// 由于 c++ 引用不是对象,所以不存在 顶层const

// 顶层 const 的对象不能改变

aint = 23; // ERROR

avec.push_back(42); // ERROR

  • 底层const表示指向的对象是const

// 只有指针才有底层const

char ch = 'a';

char * ap = & ch;

char const * bp = ap;

// 底层 const要求 左值至少具有 右值一样的限定符(有或者没有底层const)

char const *cp = bp; // OK

char const * const dp = bp; // OK

char * ep = bp; // ERROR

char * const fp = bp; // ERROR

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读