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

作者&投稿:黄贫 (若有异议请与网页底部的电邮联系)
c语言int main()括号里什么时候要加void~

main函数可以不带参数,也可以带参数,当你不需要使用命令行传递进来的参数时,你可以写成
int main()也可以写成
int main(void)
都可以通过编译。

其实C语言规定main函数的参数只能有两个,还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
int main (int argc,char *argv[])
由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,操作系统的提示符下键入文件名,再输入实际参数即可把这些参数传递到main函数中如在cmd或者Linux的终端中输入
可执行文件名 参数 参数……

void main 和 int main的区别就是有无返回值啊
在int main 可以出现非 int 类型的东西
我们在写代码时,一个函数要么有返回值,要么没有返回值,没有返回值就用void来表示。 main函数同样的,在没有返回值时加个void 。
有的编译器必须main要有返回值 int , 那就写成int main 。
至于什么时候需要哪种写法,不必有这种顾虑,你可以一律都写成 int main ,然后在方法体中 最后加个return 0 ;就行了,这样写法没有哪个编译器不通过的吧。

void main 和 int main 在作用上其实没什么区别啊,只是有的严谨的编译器必须要main有int 返回值而已,这两种写法跟自定义的函数没任何关系。

(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。

main()函数既可以是无参函数,也可以是有参的函数。
对于有参的形式来说,就需要向其传递参数。但是其它任何函数均不能调用main()函数。当然也同样无法向main()函数传递,只能由程序之外传递而来。
void 其实就是空类型,又是我们说的万能类型。你可以将它做为任意类型来使用。

main 前的 int意思是程序运行完要返回个值给系统,一般用它作为程序运行结束时的状态,一般返回0代表正常退出

int main()和int main(void)是等效的,都是main不传入任何参数。
main函数还有int main(int argc, char** argv)形式。
当然main函数的返回值类型也可以写成void,都是可以的。

根据编译器采用的标准了,C99和C98标准是不一样的,查下我以前发的帖子就有这个