是什么意思:
printf("%c", **++argv);
在C命令行程序中?
答案 0 :(得分:7)
打印传递的第一个参数的第一个字符。即argv[1][0]
argv
是指向传递给main()
的指针的指针。
**++argv
:
首先它增加(由于预增量)以指向下一个指针argv[1]
,然后将指针解引用指针argv[1][0]
。
答案 1 :(得分:1)
您可以在main()中声明argv
:
喜欢= main(int argc, char** argv)
argv
是参数字符串的字符串。
++argv means (argv + 1)
*
是地址运算符的值:
所以
*argv
=> *(argv + 0)
=> argv[0]
点第0个参数程序名称
*(argv +1)
=> argv[1]
指向应该在命令上传递的1th argument
。
*++argv => *(argv + 1)
=> argv[1]
这是第一个参数的地址,
<强> [ANSWER] 强>
**++argv => *(*(argv + 1) )
=&gt; *(*(argv + 1) + 0)
=&gt; *((argr[1] + 0)
=&gt; argv[1][0]
这是第一个参数的第一个字符。
答案 2 :(得分:0)
如果程序在没有参数的情况下运行,则在执行程序时打印第一个命令行参数的第一个字符或崩溃(通过取消引用空指针)。
*(++ argv)返回argv [1]
这是第一个参数字符串或null(如果没有参数传递给程序)
*(*(++ argv))是* argv [1] = argv [1] [0]
这是第一个参数的第一个字符(如果有的话)或者其他*(null),它会崩溃。
答案 3 :(得分:0)
在例程main()
中,参数argv
用作字符串数组,即argv
是指向字符指针的指针。 “++argv
”自动递增以指向传递给main()
的第二个命令行参数。 *++argv
是指向第二个参数中第一个字符的指针,最后**++argv
是由cnicutar发布的秒参数本身的第一个字符。
在printf
中,“%c
”用作字符类型参数的占位符。
答案 4 :(得分:0)
这是命令行参数的概念..
命令行参数是传递给main函数的参数..
printf("%c",**++argv);
打印可执行文件后第一个参数的第一个字符..
上述语句按优先级执行。首先,参数递增,然后解除引用以获取值..