请问**在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)
"**在C中有任何特殊含义吗?"
不,这只是两个解除引用.
char **argv
Run Code Online (Sandbox Code Playgroud)
意思是:argv解除引用两次是一个char.换句话说,argv是指向指针的指针char.
同样的:
"如果是这样,这条线是否
**argvmake sense?"
The declaration says that **argv是一个char.在运行时argv将被解除引用两次; 值是char那argv,指针的指针char,指向.
| 归档时间: |
|
| 查看次数: |
335 次 |
| 最近记录: |