C++里 const int* 与 int const*辨析

发布于:2022-12-14 ⋅ 阅读:(344) ⋅ 点赞:(0)

转载自:C++里 const int* 与 int const* 有什么区别?

知识点

  1. const默认作用于其左边的东西,若左边为空则作用于其右边的东西
  2. const在*的左边,值不能修改。const在*的右边,地址不能修改。

示例分析

const int*

 const只有右边有东西,所以const修饰int成为常量整型,然后*再作用于常量整型。所以这是a pointer to a constant integer(指向一个整型,不可通过该指针改变其指向的内容,但可改变指针本身所指向的地址)

int const *

再看这个,const左边有东西,所以const作用于int,*再作用于int const所以这还是 a pointer to a constant integer

int* const

这个const的左边是*,所以const作用于指针(不可改变指向的地址),所以这是a constant pointer to an integer,可以通过指针改变其所指向的内容但只能指向该地址,不可指向别的地址。

const int* const 

这里有两个const。左边的const 的左边没东西,右边有int那么此const修饰int。右边的const作用于*使得指针本身变成const(不可改变指向地址),那么这个是a constant pointer to a constant integer,不可改变指针本身所指向的地址也不可通过指针改变其指向的内容。

int const * const

这里也出现了两个const,左边都有东西,那么左边的const作用于int,右边的const作用于*,于是这个还是是a constant pointer to a constant integer


网站公告

今日签到

点亮在社区的每一天
去签到