| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1180 人关注过本帖
标题:急求解决main函数的问题
只看楼主 加入收藏
raoming
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-9-13
收藏
 问题点数:0 回复次数:9 
急求解决main函数的问题
1,main()函数中,return 0,是指程序结束。
return(1),又代表什么呢。


2,main()函数有时会带有一些不是void类型的参数。
但里面的参数怎么用呀,又不可以调用mian()函数。
那位大虾举个例子也。

搜索更多相关主题的帖子: main 函数 return 参数 
2006-09-13 12:06
raoming
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-9-13
收藏
得分:0 
吾系没人讲吗?教一下了,不会也说一声嘛。
2006-09-13 14:44
爱上夜
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-9-12
收藏
得分:0 
return是个返回植函数 return(0)就是返回0啊 return(1)就是返回1
你的第二个太笼统了吧

2006-09-13 19:49
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 

return 0 是指如果程序成功结束,就返回给操作系统一个0,表示正常结束(当然也可以不写return),如果异常终止就返回-1,这一般在UNIX下编程使用,return 1或其他整数表示指定一个值给系统,系统回根据具体情况保留这个值。

谁说不可以调用main()函数?如果调用main()函数一般相当于循环。

main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。

  DOS提示符下命令行的一般形式为: C:\>可执行文件名 参数 参数……; 但是应该特别注意的是,main 的两个形参和命令行中的参数在
位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。例如有命令行为: C:\>E6 24 BASIC dbase FORTRAN由于文件名E6 24本身也算一个参数,所以共有4个参数,因此argc取得的值为4。argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数。数组元素初值由系统自动赋予。其表示如图6.8所示:
main(int argc,char *argv){
while(argc-->1)
printf("%s\n",*++argv);
}
本例是显示命令行中输入的参数如果上例的可执行文件名为e24.exe,存放在A驱动器的盘内。
因此输入的命令行为: C:\>a:e24 BASIC dBASE FORTRAN
则运行结果为:
BASIC
dBASE
FORTRAN
  该行共有4个参数,执行main时,argc的初值即为4。argv的4个元素分为4个字符串的首地址。执行while语句,每循环一次 argv值减1,当argv等于1时停止循环,共循环三次, 因此共可输出三个参数。在printf函数中,由于打印项*++argv是先加1再打印, 故第一次打印的是argv[1]所指的字符串BASIC。第二、 三次循环分别打印后二个字符串。而参数e24是文件名,不必输出。


由于工作,N久都没来了!
2006-09-13 20:15
blue_nlj
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-9-7
收藏
得分:0 
  大悟!
2006-09-14 13:51
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

每一C 程序都必须有一main()函数,可以根据自己的爱好把它放在程序的某个地方。有些程序员把它放在最前面,而另一些程序员把它放在最后面,无论放在哪个地方,以下几点说明都是适合的。
1. main() 参数
在Turbo C2.0启动过程中,传递main()函数三个参数:argc,argv和env。
* argc: 整数,为传给main()的命令行参数个数。
* argv: 字符串数组。
在DOS 3.X 版本中,argv[0] 为程序运行的全路径名;
对DOS 3.0 以下的版本,argv[0]为空串("") 。
argv[1] 为在DOS 命令行中执行程序名后的第一个字符串;
argv[2] 为执行程序名后的第二个字符串;
...
argv[argc]为NULL。 *env: 安符串数组。env[] 的每一个元素都包含ENVVAR=value形式的字符串。其中ENVVAR为环境变量如PATH或87。value 为ENVVAR的对应值如C:\DOS,C:\TURBOC(对于PATH) 或YES(对于87)。

  TurboC2.0启动时总是把这三个参数传递给main()函数,可以在用户程序中说明(或不说明)它们,如果说明了部分(或全部)参数,它们就成为main()子程序的局部变量。 请注意:一旦想说明这些参数,则必须按argc,argv, env的顺序,如以下的例子:

main()
main(int argc)
main(int argc, char *argv[])
main(int argc, char *argv[], char *env[])
其中第二种情况也是合法的,但不常见,因为在程序中很少有只用argc,而不用argv[]的情况。
以下提供一样例程序EXAMPLE.EXE, 演示如何在main()函数中使用三个参数:

/*program name EXAMPLE.EXE*/
#include
#include
main(int argc,char *argv[],char *env[])
{
int i;
printf("These are the %d command-line arguments passed to \main:\n\n", argc);
for(i=0; i<=argc; i++)
printf("argv[%d]:%s\n", i, argv[i]);
printf("\nThe environment string(s)on this system are: \\n\n");
for(i=0; env[i]!=NULL; i++)
printf(" env[%d]:%s\n", i, env[i]);
}
如果在DOS 提示符下,按以下方式运行:

EXAMPLE.EXE: C:\example first_argument "argument with blanks" 3 4 "last butone" stop!

注意:可以用双引号括起内含空格的参数,如本例中的:"argument with blanks"和"Last but one")。

应该提醒的是:传送main() 函数的命令行参数的最大长度为128个字符 (包括参数间的空格),这是由DOS 限制的。


倚天照海花无数,流水高山心自知。
2006-09-14 21:55
wangl215
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-9-15
收藏
得分:0 

呵呵
``

2006-09-15 20:06
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 

上次见过这个帖子,不懂,可是也没仔细看,没想到这次却考到了

#include <string.h>
main( int argc,char *argv[])
{ int i=1,n=0;
while (i<argc)
{ n=n+strlen(argv[i]);
i++;
}
printf("%d\n",n);

}

该程序生成的可执行文件名为:proc.exe 若运行时输入命令行:proc 123 45 67

今天把它找出来了,看了一下,我的答案是:7
不知道对不对?

还有个问题,这个程序要怎么运行呢?


人生没有彩排,每天都是现场直播~~~
2006-09-24 15:38
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
right

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-09-24 19:20
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
收藏
得分:0 
收教,我从来没研究过主函数的参数问题

我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2006-09-25 19:49
快速回复:急求解决main函数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014571 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved