1

是什么意思:

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

在 C 命令行程序中?

4

5 回答 5

7

打印传递的第一个参数的第一个字符。IEargv[1][0]

argv是指向传递给的指针的指针main()

**++argv

首先它被递增(由于预递增)以指向下一个指针 isargv[1]然后取消引用该指针指向使用 which is 的指针argv[1][0]

于 2012-12-29T15:57:05.833 回答
1

你可以argv在 main() 中声明:like =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] 这是第一个参数的地址,

[回答]

**++argv => *(*(argv + 1) ) => *(*(argv + 1) + 0)=> *((argr[1] + 0)=>argv[1][0]那是第一个参数的第一个字符。

于 2012-12-29T16:00:28.267 回答
0

这将在执行程序时打印第一个命令行参数的第一个字符,如果程序在没有参数的情况下运行,则会崩溃(通过取消引用空指针)。

*(++argv) 返回 argv[1]

这是第一个参数字符串或 null(如果没有参数传递给程序)

*( *(++argv) ) 是 *argv[1] = argv[1][0]

这是第一个参数的第一个字符(如果有的话),否则 *(null) 会崩溃。

于 2012-12-29T16:00:07.260 回答
0

在例程中,main()参数argv被用作字符串数组,即argv一个指向字符的指针。" ++argv" 自动增量指向传递给的第二个命令行参数main()*++argv是指向第二个参数中第一个字符的指针,最后**++argv是 cnicutar 发布的第二个参数本身的第一个字符。

printf%c”中用作字符类型参数的占位符。

于 2012-12-29T16:07:35.610 回答
0

这是命令行参数的概念。

命令行参数是传递给主函数的参数。

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

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

上面的语句按优先级执行。首先参数递增,然后取消引用以获取值。

于 2012-12-29T16:12:44.353 回答