|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
就是devc++编译器上面可不可以将参数传入主函数啊?
下面是原题。。
0. 现学现用:本道题要求你快速学会一个新的技巧并独立完成练习。
教学篇
我们前面使用的 main 函数都是不带参数的,所以 main 后的括号都是空括号:
int main()
{
……
}
复制代码
实际上,main 函数是可以带参数的,这个参数可以认为是 main 函数的形参(形式参数)。C 语言规定 main 函数的参数只能有两个,习惯上把这两个参数写为 argc 和 argv。
C 语言还规定C语言还规定了argc(第一个形参)必须是整型变量,argv(第二个形参)必须是指向字符指针的指针(注意:它不是指针数组,但你可以理解为指向一个字符指针数组名或字符串数组,在函数章节我们将详细讲解,这里只要求你能够根据案例模仿实现即可)。
因此,main 函数可以写成下边这样:
int main (int argc,char *argv[])
{
……
}
复制代码
我们知道 main 函数是由系统进行调用的(我们自己无法调用它),那么如何给它传递参数呢?
其实我觉得你们应该猜到了,main 函数的参数是从命令行上接收的。
举个例子大家就明白了,看代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for (i = 0; i < argc; i++)
{
printf("%s\n", argv[i]);
}
return 0;
}
复制代码
编译的时候指定输出的文件名:Powered by bbs.fishc.com
gcc test.c -o test
复制代码
观察下边几种执行程序的方式:Powered by bbs.fishc.com
对比一下代码,大家就应该不难发现:argc 参数指定的是程序的参数数量(包括程序名本身),而 argv 这个指针数组指向的则是每个参数的名字(字符串)。
好了,新技能Get√就到这里结束,大家开始做练习!
写一个叫 sum 的程序,计算后边紧跟着的所有整型参数的和。
提示:如果你不希望自己实现字符串到整数的转换,可以使用 atoi 函数(参考文档 -> 传送门)
程序实现如下:Powered by bbs.fishc.com
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc , char * argv[])
- {
- int k , sum ;
- for(sum = 0 , k = 1 ; k < argc ; k ++) sum += atoi(argv[k]) ;
- printf("%d\n" , sum) ;
- }
复制代码
编译运行实况
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x 1 2 3 4 5
- 15
- D:\00.Excise\C>
复制代码
|
|