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,还请高手帮忙指点指点,谢谢!估计还是指针理解错误!
#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配合输出没有问题,,
2,argv[arg]+1同上,也为char *,和%s配合输出没有问题,,
作者: 奶茶dsk 发布时间: 2010-08-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28