+ -
当前位置:首页 → 问答吧 → C main函数使用

C main函数使用

时间:2010-08-06

来源:互联网

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int arg;
for(arg = 0; arg < argc; arg++) {
if(argv[arg][0] == ‘-‘)
printf(“option: %s\n”, argv[arg]+1);
else
printf(“argument %d: %s\n”, arg, argv[arg]);
}
exit(0);
}


这段代码能够把参数和参数的值分别显示出来,如下:
$ ./args -i -lr ‘hi there’ -f fred.c
argument 0: ./args
option: i
option: lr
argument 3: hi there
option: f
argument 5: fred.c

但是里面有几个地方不明白
1. argv[arg][0]是什么意思,我个人认为char *argv[]是个指针数组,那么argv[arg]应该是数组中的某个元素,保存的应该是地址,为啥还有[0]呢?
2. argv[arg]+1加1为啥能显示输入参数的值呢?

小弟初学c,还请高手帮忙指点指点,谢谢!估计还是指针理解错误!

作者: risepp   发布时间: 2010-08-06

1,argv[arg] 为指针不错,且为char *,所以argv[arg][0]和*argv[arg]等价,都为char
2,argv[arg]+1同上,也为char *,和%s配合输出没有问题,,

作者: 奶茶dsk   发布时间: 2010-08-06