首页 > 解决方案 > 如何将变量声明为 char* const*?

问题描述

我有一个 bluez 头文件get_opt.h,其中argv有一个参数:

 extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,.....

char* const*需要argv. 因为该单元是从我试图模拟的不同文件中调用的,但是无论 declaring和使用argv的排列如何char,我都会得到 unqualified-id 或编译器抱怨不转换为. 当然,我可以轻松获得。使用 C++14 在 Netbeans 中编译正常,但const*char* const*const char *char const * argv = "0";

char * const * argv = "0";

生产

“错误:在初始化(原文如此)中无法将 'const char *' 转换为 'char * const *'”。

你如何声明char* const*或者我将 C 与 C++ 混合,所以我走错了树?

标签: c++cchardeclaration

解决方案


让我们回顾一下指针声明:

char *             -- mutable pointer to mutable data.  
char const *       -- mutable pointer to constant data.  
char       * const -- constant pointer to mutable data.  
char const * const -- constant pointer to constant data.

从右到左读取指针声明。

看描述,你想要哪种指针?


推荐阅读