0

我正在阅读在 IBM RSARTE C++ 版本中开发的应用程序代码。这是一段 C++ 代码:

const char * const * av = RTMain::argStrings();

const当有两个和两个时如何理解左侧的语法*

4

2 回答 2

3
const char * const * av = RTMain::argStrings();

是相同的

char const * const * av = RTMain::argStrings();

const适用于const.

所以,是一个指向 a的avconst指针。const*const char

  • 返回的指针 ,av是 non-const并且可以更改。
  • 指针av指向的是const并且不能更改。
  • char指针指向的是const并且不能更改。
于 2021-11-07T10:43:07.097 回答
1

阅读此声明

const char * const * av 

从右到左。声明了指向常量指针 ( av)的指针 (),而常量指针 ( ) 又指向该类型的对象。* av* constconst char

为了简化此声明,请考虑此代码片段。

const char *literal = "Hello World!";
const char * const * pointer_to_the pointer_literal = &literal;

pointer_to_the pointer_literal因此,例如使用您可能不会写的指针

*pointer_to_the pointer_literal = "Bye";

你可能不会写

**pointer_to_the pointer_literal = 'h';
于 2021-11-07T10:41:58.747 回答