如果从命令行执行,下面给出的程序(myprog.c)的输出是什么?
cmd> myprog friday tuesday sunday
/* myprog.c */
#include<stdio.h>
int main(int argc, char *argv[])
{ printf("%c", *++argv[1]); return 0; }
Run Code Online (Sandbox Code Playgroud)
我知道argv [1]将是星期五,++ argv [1]意思是星期二.我可能错了.无论哪种方式,我似乎都不明白整个表达的含义是什么.
------------------------------
| f | r | i | d | a | y | \0 |
------------------------------
^ ^
| |
| ++argv[1]
|
argv[1]
Run Code Online (Sandbox Code Playgroud)
Ergo,*++argv[1]给你的角色++argv[1]指向,即'r'.演示.
如果从命令行执行下面给出的程序(myprog.c),其输出是什么?
如果没有带有编译器的计算机,学习编程是非常困难的。当你执行该程序时,它输出了什么?
反正...
argv[0]是指向包含程序名称的字符串的指针,以下参数是指向其他命令行参数的指针。argv[1]指针也是如此。"friday"'f'++argv[1]将此指针加 1,使其指向'r'。(顺便说一句,该代码行是不好的做法和糟糕的编程风格。不仅因为它难以阅读,而且还因为更改命令行参数通常不是一个好主意。)'r'.