c语言!! int main后面的()里不是什么都不加的吗??加void是什么意思啊??

如题所述

(1) C语言中
在 C89 中,main( ) 是可以接受的。 Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著
The C programming Language 2e(《C 程序设计语言第二版》)用的就是 main( )。不过在最新的 C99
标准中,只有以下两种定义方式是正确的:
int main( void )
int main( int argc, char *argv[] )
(参考资料:ISO/IEC 9899:1999 (E) Programming languages — C 5.1.2.2.1 Program startup)
当然,我们也可以做一点小小的改动。例如:char *argv[] 可以写成 char **argv;argv 和 argc 可以改成别的变量名(如 intval 和 charval),不过一定要符合变量的命名规则。
如果不需要从命令行中获取参数,请用int main(void) ;否则请用int main( int argc, char *argv[] ) 。
main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return
0; ,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return
语句,虽然没有这个必要,但这是一个好的习惯。注意,vc6不会在目标文件中加入return 0; ,大概是因为 vc6 是 98
年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上 return 语句了吧!不过,gcc3.2(Linux 下的 C
编译器)会在生成的目标文件中加入 return 0; 。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

如果主程序不需要接受外部参数就使用main(void)
如果主程序需要接受外部参数就使用main(int argc, char* argv[])
看一个例子:
int main(int argc, char* argv[])
{
int i;

printf("test main parameter\n");
printf("argc:%d\n", argc);
for(i=0;i<argc;i++)
{
printf("argv[%d]:%s\n", i, argv[i]);
}
exit(0);
}

注释 : 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。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-15
main()函数既可以是无参函数,也可以是有参的函数。
对于有参的形式来说,就需要向其传递参数。但是其它任何函数均不能调用main()函数。当然也同样无法向main()函数传递,只能由程序之外传递而来。
void 其实就是空类型,又是我们说的万能类型。你可以将它做为任意类型来使用。
第2个回答  2013-10-15
main 前的 int意思是程序运行完要返回个值给系统,一般用它作为程序运行结束时的状态,一般返回0代表正常退出追答

不加和加void是一样的,一般标准是int main(int argc, char**argv)
argc代表程序运行时的命令行参数个数,最小为1,也就是程序本身这个参数,argv[i],i=[0,argc-1],i为命令行参数索引,0的话就是程序本身这个名字,其它依次为命令行的其它参数

本回答被提问者采纳
第3个回答  2013-10-15
int main()和int main(void)是等效的,都是main不传入任何参数。
main函数还有int main(int argc, char** argv)形式。
当然main函数的返回值类型也可以写成void,都是可以的。
第4个回答  2013-10-15
根据编译器采用的标准了,C99和C98标准是不一样的,查下我以前发的帖子就有这个
相似回答