很难弄清楚(uint8_t const * const *)在.net术语中意味着什么

本文关键字:const 术语 net 意味着 什么 uint8 弄清楚 很难 | 更新日期: 2023-09-27 17:50:29

我正在读一段c++代码,我正在拉我的头发试图理解这个转换:

(uint8_t const * const *) someVideoFrame->someData

我看到了一个指向字节数组的指针,但是我很难理解double constant pointer的用法。

根据我所能理解的,我简单地将其移植为(byte **)。

就步骤而言,这个剧组想要达到什么目标?c++中的const效应是什么?

编辑

我同时在c++文档中发现了这个:

int const * const Constant4

…声明Constant4是指向常量整型的常量指针。基本上,' const '适用于它的左近邻(除非那里没有任何东西,在这种情况下,它适用于它的右近邻)。

但是我仍然想知道动态声明常量的目的是什么

很难弄清楚(uint8_t const * const *)在.net术语中意味着什么

从右开始向左移动:指针指向const指针指向const uint8_t

   uint8_t const     * const           *
// ^^^^^^^^^^^^^     ^^^^^^^           ^
//               to               to
// const uint8_t <- const pointer <- pointer

如果你想学习更多关于读取指针声明的知识,我强烈建议你学习"螺旋规则"。虽然老了,但我发现它超级有用,而且这个助记符真的很容易掌握。

强制转换可能是试图强制您不会错误地修改内部指针(这是const),也不是它指向的数据(这也是const)。