printf的含义("%c",** ++ argv);?

时间:2012-12-29 15:55:40

标签: c

是什么意思:

printf("%c", **++argv);

在C命令行程序中?

5 个答案:

答案 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);

打印可执行文件后第一个参数的第一个字符..

上述语句按优先级执行。首先,参数递增,然后解除引用以获取值..