c语言中int main(int argc, char argv)中argc和argv的作用
摘要:我们在开发C语言时,经常看到int main(int argc, char *argv[]),但是没有太多的关注于argc和argv这两个参数,其实它们有很多的作用呢。
编写一个计算器
为了简单起见,我在Ubuntu下编写了一个支持个位数“加、减”操作的计算器,我们待会通过这个实例向大家讲解argc和argv参数的作用。
先看使用操作
我们可以使用./calc程序,第一个参数传入运算符(+或-),第二个参数传入(第一个加数或者被减数),第三个参数传入(第二个加数或者减数),就可以得到运算结果。
来看代码(代码的写得很糟是为了简单起见,大家如果觉得有用可以自己改进)。
1. #include <stdio.h>
2.
3. int main(int argc, char *argv[])
4. {
5. int i = 0, result = 0;
6. char opt = 0;
7. if (argc == 1)
8. {
9. printf("Please Enter Parameter\r\n");
10. return -1;
11. }
12. switch (argv[1][0])
13. {
14. case '+':
15. printf("%d + %d = %d\r\n", (argv[2][0]-'0'), (argv[3][0]-'0'), (argv[2][0]-'0')+(argv[3][0]-'0') );
16. break;
17.
18. case '-':
19. printf("%d - %d = %d\r\n", (argv[2][0]-'0'), (argv[3][0]-'0'), (argv[2][0]-'0')-(argv[3][0]-'0') );
20. break;
21. }
22. return 0;
23. }
我们的运算数据和运算符都是都过argc和argv参数传递进来的。现在我们开始第二个实验向大家讲解argc和argv参数的作用。
二、编写一个打印argc和argv的程序
首先来看代码:
1. #include <stdio.h>
2.
3. int main(int argc, char *argv[])
4. {
5. int i = 0;
6. printf(" argc = %d\r\n", argc);
7. for (i=0; i<argc; i++)
8. {
9. printf("argv[%d] = %s\r\n", i, argv[i]);
10. }
11.
12. return 0;
13. }
我分别传入0个参数,1个参数,2个参数,大家来看实验结果:
我们在不传参数时,默认有1个参数,它的内容是字符串”./test”,也就是我们执行文件时的执行指令。
argc = argument cout,表示传入参数的个数;argv是一个字符串指针数组,表示传入参数的内容,我们可以根据argc中的值去判断字符串指针数组中的个数,每一个数组成员都是一个字符串指针地址,可以用printf打印出来。
- 点赞
- 收藏
- 关注作者
评论(0)