**运算符在C中的含义是什么?

mai*_*rgs 1 c

请问**在C什么特殊的意义?

像这样:

static intparse_one (int argc, char **argv)
{
    cmd_line       *slot;
    int             value;
    Flag_name       flag_name;
    int         i;

printf("argv %s\n",argv);
printf("argv[0] %c\n",**argv);
Run Code Online (Sandbox Code Playgroud)

如果是这样,该行

**argv
Run Code Online (Sandbox Code Playgroud)

合理?我试图运行的程序令人窒息.如果我尝试打印它,我会遇到分段错误.

第一个printf打印字符串罚款.第二个printf失败了.

这是我得到的输出(第一行是正确的):

argv -aps_instance1001-aps_ato0-aps_ipc_debug3

Segementation Fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

Pet*_*sen 9

"**在C中有任何特殊含义吗?"

不,这只是两个解除引用.

char **argv
Run Code Online (Sandbox Code Playgroud)

意思是:argv解除引用两次是一个char.换句话说,argv是指向指针的指针char.


同样的:

"如果是这样,这条线是否 **argv make sense?"

The declaration says that **argv是一个char.在运行时argv将被解除引用两次; 值是charargv,指针的指针char,指向.