【发布时间】:2012-10-11 22:55:55
【问题描述】:
int
main(int argc,char **argv){
for (argc--, argv++; argc > 0; argc -= argCount, argv += argCount) {
argCount = 1;
switch (argv[0][1]) {
case 'q':
testnum = atoi(argv[1]);
argCount++;
break;
default:
testnum = 1;
break;
}
}
//...............
我的问题是 argv[0][1] 是什么意思,for() 中的条件让我感到困惑,我的意思是 for (argc--, argv++; argc > 0; argc -= argCount, argv += argCount)
//谢谢大家....**argv[0][1] 应该是 argv[0][1],那是我的错误,不是代码编写者。
【问题讨论】:
-
看起来像是在滥用 'for' 关键字
-
这种代码确实缺少一些 cmets。
-
switch行无效,argc[0][1]是一个字符,而不是一个指针,你不能取消它一次(更不用说两次)。 argCount 也没有定义。请贴出真实代码。 -
**argv[0][1]没有意义。argv[0][1]已经产生了一个char,你不能只是取消引用。此代码不应编译。我假设真正的代码只是argv[0][1],然后它只是测试当前参数字符串的第二个字符。 -
argCount 定义我忘了把它放在...对不起