是什么意思:
printf("%c", **++argv);
在 C 命令行程序中?
打印传递的第一个参数的第一个字符。IEargv[1][0]
argv
是指向传递给的指针的指针main()
。
**++argv
:
首先它被递增(由于预递增)以指向下一个指针 isargv[1]
然后取消引用该指针指向使用 which is 的指针argv[1][0]
。
你可以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]
那是第一个参数的第一个字符。
这将在执行程序时打印第一个命令行参数的第一个字符,如果程序在没有参数的情况下运行,则会崩溃(通过取消引用空指针)。
*(++argv) 返回 argv[1]
这是第一个参数字符串或 null(如果没有参数传递给程序)
*( *(++argv) ) 是 *argv[1] = argv[1][0]
这是第一个参数的第一个字符(如果有的话),否则 *(null) 会崩溃。
在例程中,main()
参数argv
被用作字符串数组,即argv
一个指向字符的指针。" ++argv
" 自动增量指向传递给的第二个命令行参数main()
。*++argv
是指向第二个参数中第一个字符的指针,最后**++argv
是 cnicutar 发布的第二个参数本身的第一个字符。
在printf
“ %c
”中用作字符类型参数的占位符。
这是命令行参数的概念。
命令行参数是传递给主函数的参数。
printf("%c",**++argv);
在可执行文件之后打印第一个参数的第一个字符..
上面的语句按优先级执行。首先参数递增,然后取消引用以获取值。