【发布时间】:2013-12-05 00:16:36
【问题描述】:
我一直在尝试解决这个问题,但无法理解。 如果以下程序(myprog)从命令行运行为:
myprog friday tuesday sunday
输出会是什么?
#include<stdio.h>
int main(int argc, char *argv[]){
while(sizeof argv)
printf("%s",argv[--sizeof argv]);
return 0;
}
输出是-
sunday tuesday friday myprog
请解释一下输出。 谢谢:-)
【问题讨论】:
-
--sizeof argv是非法的。所以你的程序不能从命令行运行,因为它甚至无法编译。 -
输出应该类似于“错误:无法将
--应用于右值”。 -
即使编译成功了,运行时会陷入死循环,超出argv范围时会崩溃。
while(sizeof argv)不会终止。 -
代码无法编译。请检查您的代码并编辑发布的问题。
标签: c output command-line-arguments