C语言中void main 和main函数有什么区别?

C语言中void main 和main函数有什么区别?,第1张

请不要用void main()的形式,因为它是不标准的形式,正确的形式为:

int main(void)

void表示没有,在自定义的函数中,可以用void作返回值类型,但是main函数不推荐

答案:C

C。解析在C语言中,main()函数也可以有参数,例如,main(intar90,charargv),argc是指字符串的指针数组,而其他几项表达不正确。

不合法的是B,

main带参数主要是为了用命令行方式运行,第一个参数的意义是参数的个数,是个整形值,第二个参数的意义是参数的具体内容,是字符串数组(一般用写成二级指针)。

这种方式和我们在命令提示符下输命令运行是一样的。

int main(void);

int main(int argc,char argv[]);

ISO C99标准定义了以上两种。

由于ANSI C89/ISO C90中返回值可以被省略而默认为int,所以main(void);也可以作为原型。(新标准取消了这个特性。)

以上只是标准规定的形式入口函数原型。其余的入口函数(甚至可以不叫main)由实现定义,取决于平台(编译器)。注意非标准的入口函数会导致代码可移植性差。例如对于控制台程序,Microsoft C&C++ Compiler支持void main(),但这样的代码在GCC上无法通过编译。

C语言中()参数列表表示可以接受任意类型和个数的参数(对应C++中的()),而(void)不接受参数(对应C++中的()),两者有所区别。不过一般C的入口函数实现中前者兼容后者。于是int main();作为C++标准入口函数形式之一(另一种是int main(int argc,char argv[]);),事实上和C通用。

另外一种非标准通常形式为int main(int argc,char argv[] char envp[]),envp表示传入的环境变量。

一般来说,除非限制了特定的平台(在一些特定的场景如Linux内核程序中,应该使用void main();),对于控制台程序最好只使用标准定义的入口函数形式或者int main();。即使用VC++,void main();也一般不是被推荐的。main的返回值传递给调用者( *** 作系统/父进程),通常0表示正常退出,非0表示非正常退出。如果使用void main();,控制台程序的返回值是不确定的,和平台相关。

====

[原创回答团]

public

static

void

main(String[]

args)throws

Exception

{}

main方法被声明为静态方法(static),一般在一个类里面定义这样的main方法对该类进行一些简单的测试。main方法就这一种声明格式。

1public

定义main方法的访问权限为公有的。

2static

声明为静态方法,静态方法是属于类的,在没实例化之前就可以使用。

3void

声明返回方式。

4如果在main方法里面会抛出异常且未当场处理时需加上throws

Exception,否则可以不用,Exception

可以是你自己定义的异常。

5重点介绍一下main函数的参数

String[]

args

String[]

args是main函数的形式参数,可以用来获取命令行用户输入进去的参数。声明main函数的时候一定要在括号里写上它,否则会报错。

举个用到String[]

args的例子,可能不能运行,权当给你理解用。

class

Example

{

public

void

main(String[]

args)

{

Systemoutprintln(args[0]);

Systemoutprintln(args[1]);

}

}

那么这个程序在执行的时候就需要向main函数传递形式参数的值,好让main函数完成打印的功能。

注:String[]

args显示args是一个String类型的数组,args[0]、args[1]是头两个元素。

执行时在控制台输入:straul

good

后面两个字符串随便写什么,它们作为实参传入main函数,straul传入args[0],good传入args[1]。

那么屏幕会出现:

straul

good

这和在main函数里调用其他函数并且向被调用函数传递参数是一样的道理,只不过传给main函数罢了。

希望对你有用!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13494231.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存