我正在阅读在 IBM RSARTE C++ 版本中开发的应用程序代码。这是一段 C++ 代码:
const char * const * av = RTMain::argStrings();
const当有两个和两个时如何理解左侧的语法*?
我正在阅读在 IBM RSARTE C++ 版本中开发的应用程序代码。这是一段 C++ 代码:
const char * const * av = RTMain::argStrings();
const当有两个和两个时如何理解左侧的语法*?
const char * const * av = RTMain::argStrings();
是相同的
char const * const * av = RTMain::argStrings();
const适用于const.
所以,是一个指向 a的av非const指针。const*const char
av是 non-const并且可以更改。av指向的是const并且不能更改。char指针指向的是const并且不能更改。阅读此声明
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';