main前面的是类型标识符,也就是类型名,其决定的是函数返回值的类型,int指有返回值且返回值为整型,void表示“空"即没有返回值。
很多时候函数是不需要返回值的,只作为语句执行就完成任务了,比如主函数main常常就是;有返回值的函数通常出现在表达式中,int i=rand();
rand()返回一个随机值替代自身位置赋值给i,有返回值的函数定义其返回值类型可以各式各样,有int有char有float有double。
对于主函数,我们常常只要程序执行它,并不需要它的返回值,所以有人用int main加上return 0,有的直接用void main.。但最后制定标准的人说了:"main’must return ‘int’,其他的乱七八糟的返回值类型都不行,void也不行,以此盖棺定论。只返回int,这大概就是main作为一个主函数的尊严,本身没什么意义就是,毕竟return0都不需要你自己加,编译器就代劳了。
所以对于其他花花绿绿的函数,主函数main前只能动加int(就好比主函数只能用main表示一样,只是这么规定而已),老的编译器可能还能用void,但现在的严的编译器大多默认int,用void会报错。
顺便说一句,void main()或void main(void)是写程序的人根据函数原型自行发明的,C和C+标准中可从来没有定义过void main。
再偷偷告诉你,如果你受不了强权的话你可以直接用main()省略int,不过这也,只是以前的写法,早晚会在渐渐的标准化中被淘汰,当然编译器是不大会报错的就是了。
不论返回值数据类型或者参数数据类型如何都不影响你在函数(不论主函数还是其他函数)主体内使用其他各种数据类型。*
上一个奇葩程序:
#include<iostream>
int main()
{
float a;
double b;
char c;
float xy(short x,double y,int z);//函数定义在主函数之前时可省略此声明语句。
std::cout<<xy(1,1,1);
}
float xy(short x,double y,int z)
{
float a=3.1;
char b='a';
int c=1;
return a;//最好返回的值对应float数据类型,否则会将对应二进制码按float规则强制转换,至于报错是不可能报错的。
}
int main()
{
return 0; /* 新标准主函数的返回值这条语句可以省略 */
}
文章浏览阅读357次。实现流写入,将图像作为mjpeg写入 public class MjpegWriter : IDisposable { private static byte[] CRLF = new byte[] { 13, 10 }; private static byte[] EmptyLine = new byte[] { 13, 10, 13, ..._c# mpeg server
文章浏览阅读5.4k次,点赞3次,收藏3次。Exceptionsendingcontextinitializedeventtolistenerinstanceofclassorg.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException:Errorcreating..._caused by java.lang.classnotfoundexception: com.alibaba.druid.pool.druiddata
文章浏览阅读399次。vxWorks/BootROM Imageq启动顺序详解VxWorks image 分为在ROM中运行和在RAM中运行两种,两者启动顺序的区别在于sysInit()函数的调用,该函数在RAM运行的VxWorks中初始化RAM。1.ROM中运行的VxWorks : VxWorks在ROM中运行,即写入ROM中的VxWorks是非压缩的,..._vxworks bootm 启动imga 指令
文章浏览阅读76次。前言眼下世面上中文的KIE DROOLS Workbench(JBOSS BRMS)的教程差点儿没有,有的也仅仅有灵灵碎碎的使用机器来翻译的(翻的不知所云)或者是基于老版本号的JBOSS Guvnor即5.x的一些教程,并且这些教程都是”缺胳膊少腿“的。刚開始学习的人看后不知道它究竟在干吗?能干吗?能够解决自己系统中什么问题。所以笔者自己写了几个样例,把整个最新的英文版的KIE DROOLS ..._drools-distribution-
文章浏览阅读746次,点赞24次,收藏23次。其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节祝大家都能得到自己心仪工作。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!> tag。_android mvp框架搭建
文章浏览阅读4.1w次,点赞43次,收藏239次。一、差分进化算法的由来差分进化算法(Differential Evolution,DE)于1997年由Rainer Storn和Kenneth Price在遗传算法等进化思想的基础上提出的,本质是一种多目标(连续变量)优化算法(MOEAs),用于求解多维空间中整体最优解。差分进化思想来源即是早期提出的遗传算法(GeneticAlgorithm,GA),模拟遗传学中的杂交(crossover..._差分进化算法
文章浏览阅读1.4w次,点赞22次,收藏147次。朴素贝叶斯(Naive Bayes)是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。由于朴素贝叶斯计算联合概率,所以朴素贝叶斯模型属于生成式模型。经典应用案例包括:文本分类、垃圾邮件过滤等。_朴素贝叶斯算法
文章浏览阅读638次。2019独角兽企业重金招聘Python工程师标准>>> ..._apt - ghostrat - tcp - variant 4
文章浏览阅读92次。{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行数据压测演练,提供数据库优化方面专业建议,在业务高峰期与用户共同保障数据库系统平..._mysql对于网站
文章浏览阅读6.4w次,点赞74次,收藏808次。YOLOv7训练自己的数据集(超详细)_yolov7训练自己的数据集
文章浏览阅读2.6k次。生产中的Spring云网关发现了内存泄漏,导致系统停机。内存使用量不断增加,直到内存耗尽导致以下异常:2019-05-21 09:18:24.793 WARN The connection observed an errorio.netty.handler.codec.DecoderException: javax.net.ssl.SSLException: Tag mismatch!at io...._the connection observed an error, the request cannot be retried as the heade
文章浏览阅读978次,点赞15次,收藏30次。它是Java5后新增的for语句的特殊简化版本,并不能完全替代for语句,但所有foreach语句都可以改写为for语句。foreach语句在遍历数组等时为程序员提供了很大的方便。终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!**