精华内容
下载资源
问答
  • int mainvoid) 指此函数的参数为空,不能传入参数,若输入参数则会出错,但必须要有返回值,如return 0;。 int main() 可以传入参数,程序需要返回值。 但在c++中二者没有区别。

    int main(void)

    指此函数的参数为空,不能传入参数,若输入参数则会出错,但必须要有返回值,如return 0;。
    

    int main()

    可以传入参数,程序需要返回值。
    

    但在c++中二者没有区别。

    展开全文
  • 首先来说说 int main() 、void main()、void main(void)这几个吧 以前我也不知道这为什么,上网一搜,好家伙,int main() 没整明白就算了,还搅和进来了 void main() void main(void) 其实没有那么乱,主函数就用 ...

    hello 我是涤生,以下为笔者自己见解,如有错误,请大家务必指出,谢谢♪(・ω・)ノ

    首先来说说 int main() 、void main()、void main(void)这几个吧

    以前我也不知道这为什么,上网一搜,好家伙,int main() 没整明白就算了,还搅和进来了 void main() void main(void) 

    其实没有那么乱,主函数就用 int main()最后函数体末尾加上return 0; 即可,那么问题来了,为什么要加上return 0 ;呢?为什么不能是return 1;呢?emm.....int main()是说这个是一个标准有返回值的函数,至于其返回值为什么是0,且听我bb(/狗头)。

    int main()其实也是一个函数,int main(void)并没有问题,事实上在int main()之前也有一段程序(我们并不知道)这段程序来调用我们的main函数,此时return0也是有意义的了,这个0返回给调用main的地方,即那一小段代码,那一小段代码来检查这个返回值,并且报告给我们的操作系统,这样对一些人是有意义的,可以通过一些方法来检查我们这个程序最后返回的是否是0(传统上都是看这个是不是0),如果是0,就去做什么什么事情,也说明了我们这个程序说明它木有问题

    然后说 自定义函数 的void int

    比如说我们定义一个函数名叫cheer

    void cheer(int i)和void cheer(void)来声明函数是指这个定义的函数不允许有返回值,一般这种情况下我们要的都是此函数的“副作用”。

    注意:当我们定义的这个函数不需要传入参数时要用void cheer(void),这个括号()里面不能没有东西,没有东西不是表示这个函数没有参数,而是表示这个函数有不确定参数(此时传入参数,容易出现错误),所以当我们明确了函数不用参数时就括号里加上void,用参数时就加上形参,规范起来规范起来~~

    至于自定义int cheer(int a,double b)时,这个表示自定义的cheer函数是有返回值的参数。

     

     

    展开全文
  • void mainmain(void)

    2020-12-19 14:15:34
    void mainmain(void) 第二个答案: https://www.zhihu.com/question/358133724 Returns: a pointer to void if successful, or NULL if not. void main似乎是一个遗留问题, 在之后void main应该是个ub ,编译器...

    void main 与 main(void)

    第二个答案:

    https://www.zhihu.com/question/358133724

    在这里插入图片描述

    Returns:  a pointer to void if successful, or NULL if not.
    

    void main似乎是一个遗留问题,

    在之后void main应该是个ub ,编译器不会执行类型检查,汇编正常执行

    有的编译器或许会添加上return 0;

    而对于main(void):

    取自:https://www.zhihu.com/question/358133724

    C语言是调用者清栈,所以main函数不写参数也可以,比如 main(void),不会运行出错,只是函数里拿不到命令行参数,但是压栈的参数还是会被正确处理

    但如今实现:

    result = main (argc, argv, __environ MAIN_AUXVEC_PARAM); 
    exit(result);
    

    如今应该都会补上return 0 或者直接报错了.

    展开全文
  • 在java中main()方法是java应用程序的入口方法,由此可见main方法是很重要的,那么下面这篇文章就给大家详解介绍了Java中的main()方法,需要的朋友可以参考下。前言JAVA中的主函数是我们再熟悉不过的了,相信每个学习...

    在java中main()方法是java应用程序的入口方法,由此可见main方法是很重要的,那么下面这篇文章就给大家详解介绍了Java中的main()方法,需要的朋友可以参考下。

    前言

    JAVA中的主函数是我们再熟悉不过的了,相信每个学习过JAVA语言的人都能够熟练地写出这个程序的入口函数,但对于主函数为什么这么写,其中的每个关键字分别是什么意思,可能就不是所有人都能轻松地答出来的了。我也是在学习中碰到了这个问题,通过在网上搜索资料,并加上自己的实践终于有了一点心得,不敢保留,写出来与大家分享。

    Java中的main()方法

    java虚拟机通过main方法找到需要启动的运行程序,并且检查main函数所在类是否被java虚拟机装载。如果没有装载,那么就装载该类,并且装载所有相关的其他类。因此程序在运行的时候,第一个执行的方法就是main()方法。通常情况下, 如果要运行一个类的方法,必须首先实例化出来这个类的一个对象,然后通过"对象名.方法名()"的方式来运行方法,但是因为main是程序的入口,这时候还没有实例化对象,因此将main方法声明为static的,这样这个方法就可以直接通过“类名.方法名()”的方式来调用。

    在看Java中的main()方法之前,先看一个最简单的Java应用程序HelloWorld,我将通过这个例子说明Java类中main()方法的奥秘,程序的代码如下:

    /**

    * Java中的main()方法详解

    */

    public class HelloWorld {

    public static void main(String args[]) {

    System.out.println("Hello World!");

    }

    }

    一、先说类:

    HelloWorld 类中有main()方法,说明这是个java应用程序,通过JVM直接启动运行的程序。

    既然是类,java允许类不加public关键字约束,当然类的定义只能限制为public或者无限制关键字(默认的)。

    二、再说main()方法

    这个main()方法的声明为:public static void main(String args[]) 。必须这么定义,这是Java的规范。

    为什么要这么定义,和JVM的运行有关系。

    当一个类中有main()方法,执行命令“java 类名”则会启动虚拟机执行该类中的main方法。

    由于JVM在运行这个Java应用程序的时候,首先会调用main方法,调用时不实例化这个类的对象,而是通过类名直接调用因此需要是限制为public static。

    对于java中的main方法,jvm有限制,不能有返回值,因此返回值类型为void。

    main方法中还有一个输入参数,类型为String[],这个也是java的规范,main()方法中必须有一个入参,类细必须String[],至于字符串数组的名字,这个是可以自己设定的,根据习惯,这个字符串数组的名字一般和sun java规范范例中mian参数名保持一致,取名为args。

    因此,main()方法定义必须是:“public static void main(String 字符串数组参数名[]) ”。

    三、main()方法中可以throw Exception

    因此main()方法中可以抛出异常,main()方法上也可以声明抛出异常。

    比如,下面这个写法是正确的:

    public class TestMain {

    public static void main(String[] args) throws Exception {

    System.out.println("哈哈哈哈哈");

    throw new Exception("");

    }

    }

    运行结果:

    哈哈哈哈哈

    Exception in thread "main" java.lang.Exception:

    at maintest.TestMain.main(TestMain.java:11)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:585)

    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)

    Process finished with exit code 1

    四、main()方法中字符串参数数组作用

    main()方法中字符串参数数组作用是接收命令行输入参数的,命令行的参数之间用空格隔开。

    下面给出一个例子,看看如何初始化和使用这个数组的。

    /**

    * 打印main方法中的输入参数

    */

    public class TestMain {

    public static void main(String args[]){

    System.out.println("打印main方法中的输入参数!");

    for(int i=0;i

    System.out.println(args[i]);

    }

    }

    }

    执行方法和运行结果

    D:\Study\basetest\src>javac TestMain.java

    D:\Study\basetest\src>java TestMain 1 2 3

    打印main方法中的输入参数!

    1

    2

    3

    五、给出HelloWorld的另外一个版本

    /**

    * 变态版的HelloWorld.呵呵

    */

    public class HelloWorld2 {

    static {

    System.out.println("Hello Wordld!");

    }

    public static void main(String args[]){

    System.exit(0);

    }

    }

    这个main()方法执行的内容就一句" System.exit(0);" ,目的是让程序正常结束。那“HelloWorld!”是从哪里打印的,秘密就是在static打印的,因为static代码块的内容会在main调用前调用。

    六、实例

    虚拟机通过调用某个指定类的方法main启动,传递给main一个字符串数组参数,使指定的类被装载,同时链接该类所使用的其它的类型,并且初始化它们。例如对于程序:

    public class HelloApp {

    public static void main(String[] args) {

    System.out.println("Hello World!");

    for (int i = 0; i < args.length; i++) {

    System.out.println(args);

    }

    }

    }

    编译后在命令行模式下键入: java HelloApp run virtual machine

    将通过调用HelloApp的方法main来启动java虚拟机,传递给main一个包含三个字符串"run"、"virtual"、"machine"的数组。现在我们略述虚拟机在执行HelloApp时可能采取的步骤。

    开始试图执行类HelloApp的main方法,发现该类并没有被装载,也就是说虚拟机当前不包含该类的二进制代表,于是虚拟机使用ClassLoader试图寻找这样的二进制代表。如果这个进程失败,则抛出一个异常。类被装载后同时在main方法被调用之前,必须对类HelloApp与其它类型进行链接然后初始化。链接包含三个阶段:检验,准备和解析。检验检查被装载的主类的符号和语义,准备则创建类或接口的静态域以及把这些域初始化为标准的默认值,解析负责检查主类对其它类或接口的符号引用,在这一步它是可选的。类的初始化是对类中声明的静态初始化函数和静态域的初始化构造方法的执行。一个类在初始化之前它的父类必须被初始化。

    整个过程如下:

    313d0bce42a8b5f97cb4747dd076e41e.png

    总结

    main方法作为一个特殊的规范,与普通的方法有很大区别,限制很多,理解其原理需要学习JVM相关知识。是Java中学习中大障碍。以上就是小编为大家整理的对main原理和使用的总结,希望对大家能有所帮助,如果有疑问大家可以留言交流。

    展开全文
  • 在C语言编程中通常会看到 **int main()、int main(void)、void mainvoid)、main()和mainvoid)、int main() 和 void 首先来看看标准的主函数写法是什么样的,在C99标准(ISO/IEC 9899:1999)的5.1.2.2.1 ...
  •     这两个定义在C语言中也都适用,但是第二个带有void的定义在技术上被认为是更好的,因为它清楚地指定只能在没有任何参数的情况下调用main。     在C语言中,如果函数声明没有指定任何参数,则意味着可以...
  • 在学习C语言的过程中,会习惯性的将int main()写为void main(),但是在使用void main()时若添加上return 0,会出现警告(Dev-C++):gain\rate.c [Warning] 'return' with a value, in function returning void ...
  • 在C中从main调用void*函数

    千次阅读 2021-05-20 05:47:03
    我的程序工作,但其中一个要求是使用主线程来查找初始值,并且一旦我从main调用函数Void*calc,程序就会中断.是否有某种方法可以进行这样的函数调用?这是因为函数是指针吗?任何帮助表示赞赏.#include #include #...
  • 问题描述: error LNK2019: 无法解析的外部符号 _main,函数 “int __cdecl invoke_main(void)” (?invoke_main@@YAHXZ) 中引用了该符号 解决: 看一下主函数写没写错
  • C语言 void main()出错

    千次阅读 2020-12-19 22:38:20
    c语言的标准语法是int main()。 void main()是未定义行为,程序能否正常运行由编译器决定。 CodeBlocks中,void main()就会报错。 程序设计中,我们应当使用正确的语法int main()。
  • 其实main也是一个函数; (1) ...int main(void)和int main()是一样的(括号里没有东西就相当于void) 说明main函数有一个int类型的返回值。 int main()是C语言的规范,要求main函数返回一个int类型
  • java中的public static void main是什么意思发布时间:2020-06-22 15:27:34来源:亿速云阅读:266作者:Leahjava中的public static void main是什么意思?可能很多人都不太了解,为了让大家更加了解,小编给大家总结...
  • C/C++误区:void main?

    2021-02-09 11:01:04
    以前在学校刷题或写一些小程序时,测试的main函数经常为了省事写成void main,而且因为在一些书籍中也看到这样的写法,以为这种写法是成立的,今天才发现,这种写法是完全不符合C/C++规范的,C/C++ 中从来没有定义过...
  • VS2019,C++新建空项目默认是控制台项目 建立源文件导入Win32窗口程序的代码后编译报错 解决: 项目属性,预处理器:控制台改为WINDOWS 连接器-系统-子系统改为窗口WINDOWS
  • 首先要了解int是整形函数,void表示无, main表示头文件, 其次他俩的区别就是当一个程序用printf输出之后,数据需不需要回去,程序需不需要知道得到的...若用 void main(),则不需要回去,也不需要知道结果是多少 ...
  • 在运行指针时终端出现error: ‘::main’ must return ‘int’ void main()错误 源代码如下: #include<stdio.h> void main() { int a,*p,b,c,d,e; a=100; p=&a; /* (*&a) 先进行&a运算,得a的...
  • 项目场景: Visual Studio2019、控制台应用。...无法解析的外部符号 _main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号 原因分析: 项目设置问题。 解决方案: ...
  • 主函数的一般写法如下:public static void main(String[] args){…}(1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数。(2)static关键字,告知编译器main函数是一个静态函数。也...
  • public static void main(String[] args)

    千次阅读 2021-01-14 08:17:55
    public static void main(String[] args)到底 是什么意思? public static void main(String[] args), 是Java程序的入口地址,Java虚拟机运行程序时首先找的就是main方法。 一 、main函数,参数String[] args是一个...
  • 错误 LNK2019 无法解析的外部符号 _main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号 Project2 D:\project\vc2019userproject\vc2019userproject\Project2\msvcrtd.lib(exe_main....
  • 编译器的原因,有的编译器要求int()函数必须要有一个int型的返回值 把void main()改成int main(),结尾加上return 0: int main() { ......//程序内容 return 0; } 编译遂成功。
  • 在IDEA中public static void main(String[] args)的快捷键是:psvm System.out.println(); 的快捷键是:sout
  • 浅谈public static void main(String[] args)

    千次阅读 2020-12-30 17:20:32
    public static void main(String[] args){ //代码 } mian函数是程序的执行入口 public:表示main方法可以由任何类访问。(java虚拟机调用main方法所以必须为public) public缘由: main方法是公共的,JVM就可以...
  • 目录标题 Java 基础语法程序代码 public static void main(String[ ] args) 是什么意思? 我们经常使用到 System.out.println(),那么它是什么呢? 定义一个方法包含以下语法: Java 基础语法程序代码 public static...
  • YDOOK:Java: IDEA 快速生成 public static void main(String[] args) 函数 © YDOOK JY Lin 文章目录YDOOK:Java: IDEA 快速生成 public static void main(String[] args) 函数© YDOOK JY Lin1. 新建 Java 类:2. ...
  • A.public static void main(String[] args) B.public static final void main(String[] args) C.static public void main(String[] args) D.static public synchronized void main(String[] args) E.static public ...
  • 微信公众号:一休日记 最近有个小兄弟想入门Android,建议他初学先学些基础的java知识课程《java4Android》
  • 错误: 在类 A 中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.application.Application 原因及解决方法 可能原因一 修改Java代码后未保存...
  • public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application 解决方案: 看是否导入的其他奇怪的包,删掉后即可,比如我遇到的就是导入了...
  • #include void main( ) { double s=0.0; int i,n; scanf("%ld",&n); for(i=1;i A、1/i*i B、1.0/i*i C、1.0/(i*i) D、 1.0/(n*n) [单选题] 下面程序的运行结果是_________. #include void main( ) { int a,b; a=-1;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,853,112
精华内容 2,741,244
关键字:

mainvoid