1. C语言命令行参数详解
命令行参数 : 有两个参数 int argc 和 char **argv;
-- argc : 标示输入的参数个数, 注意命令本身也是参数;
-- argv : 指向 字符串数组的指针, 每个字符串是一个参数;
-- 约定 : argv[0] 是 程序名称, argc 的最小值是1, 如果argc 是1, 那么说明 命令后面没有参数;
(1) 模仿 echo 程序 示例
echo程序示例 :
- octopus@octopus-Vostro-270s:~/code/c/pointer$ echo csdn
- csdn
- octopus@octopus-Vostro-270s:~/code/c/pointer$ echo Hello World
- Hello World
使用数组下标方式访问参数模仿echo示例程序 :
- /*************************************************************************
- > File Name: echo.c
- > Author: octopus
- > Mail: octopus_work.163.com
- > Created Time: 2014年03月19日 星期三 19时56分36秒
- ************************************************************************/
- #include<stdio.h>
- int main(int argc, char **argv)
- {
- int i;
- for(i = 1; i < argc; i ++)
- {
- //将参数输出, 每次注意输出一个空格, 如果是最后一个那就不用输出空格了
- printf("%s%s", argv[i], (i < argc - 1) ? " " : "");
- }
- printf("\n");
- return 0;
- }
执行效果 :
- octopus@octopus-Vostro-270s:~/code/c/pointer$ ./echo Hello World
- Hello World
使用指针访问参数模仿echo程序 :
- /*************************************************************************
- > File Name: echo_pointer.c
- > Author: octopus
- > Mail: octopus_work.163.com
- > Created Time: 2014年03月19日 星期三 20时08分07秒
- ************************************************************************/
- #include<stdio.h>
- /*
- * echo Hello World
- * 循环条件 : --argc, 如果参数只有一个 echo 那么什么都不用打印
- * 打印参数个数 : 如果参数有 3 个, 那就循环 2 次, 打印两个参数
- * 打印参数 : 从 第 2 个参数开始打印
- * 打印空格 : 如果argc > 1, 说明下一轮还要继续打印, 此时打印空格
- */
- int main(int argc, char **argv)
- {
- while(--argc > 0)
- printf("%s%s", *++argv, (argc > 1) ? " " : "");
- printf("\n");
- return 0;
- }
执行结果 :
- octopus@octopus-Vostro-270s:~/code/c/pointer$ gcc echo_pointer.c -o echo
- octopus@octopus-Vostro-270s:~/code/c/pointer$ ./echo Hello World