顶层和底层的翻译很容易让人误解为就只有两层,实际上当然是不是的。首先我们假设有这样的代码:

template<typename T> using Const = const T;
template<typename T> using Ptr = T*;

然后

const int *** const shit = nullptr;

要怎么看呢?很简单,不要用const和*,用Const和Ptr来表达,马上明白:

Const<Ptr<Ptr<Ptr<Const<int>>>>> shit = nullptr;

一秒学会



作者:vczh
链接:https://www.zhihu.com/question/24785843/answer/238903938
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

加上自己的理解,这种const T ***** p 或者  T***const *p 怎么理解?

从右往左,分别是最上和最底。

比如const T*** 表示的是  一个指针的指针的指针,指向的是什么呢,是一个const T。

而  T****const * 表示的是什么,一个指针指向了一个不能更改指向的指针。这个指针指向的是什么呢?是一层层最终到T的。T是可改的。

 

 

posted on 2020-04-20 17:12  newbird2017  阅读(288)  评论(0编辑  收藏  举报