C语言中函数的先后关系,java和C语言的语法区别

news2024/11/15 21:39:00

以上代码中,sum函数在上面,main函数在下面,在main函数中就可以调用sum函数。

如果sum函数定义在main函数后面,则需要在main函数前面声明sum函数。即在main函数前面写:void sum(int begin, int end);

C语言中,习惯将函数声明放在main函数前面,将函数定义放在main函数后面。如下面所示。

这点和java有很大区别。 

在java中,方法存放在同一个类中,只要在一个类中就可以相互调用。即在同一个类中,不论方法的定义在前还是后,main方法都可以调用,不分前后。

此外,c语言和java的区别还有:

1、变量赋值

int a = 5;
double d = 8.88;
a = d;

以上代码第三行,将double类型的变量赋值给int类型,在C语言中,直接将小数部分舍弃掉,即a =8 。同样的代码,在java中是错误的,将double类型的值赋值给int类型的变量,即需要强制转换成int,强制类型转换需要写明类型,正确的写法是a = (int)d;

2、bool类型

c语言中bool类型的存储和输出是整数,是真用1表示,假用0表示。

,输入和输出都用%d的格式。使用bool类型需要添加头文件,所以不如直接用int类型,对于写选择条件和循环条件时可直接用返回的int类型作为条件。

java中bool类型只有两个值,true和false,并且不可以进行数据类型转换,所以对于选择和循环条件必须是bool类型,不可以和1,0等价。

3、函数的定义的顺序

在java中,同一个类中,方法的定义不分前后顺序,都可以调用。在C语言中分顺序,后面的函数才可以调用前面的函数。一般习惯将main函数放在最前面,调用其它函数。其它函数声明在main函数之前,定义在main函数之后。

4、函数调用时类型不匹配

C语言中类型不匹配会自动转换为需要的类型。

在C语言中正常运行,直接将double转换成了int类型,没有报错。

这种情况在C++和java中都是错误的。因为double转换为int是需要强制转换的,丢失了精度无法实现自动转换。

上面代码中,形参是double类型,传入的实参是int类型,int转换为double,在C语言中没有错误。

在java中,由于实参是int类型,int转换成double可以自动转换,所以在java中不会报错。 

交换值:

上述代码中swap函数是交换a和b的值,交换的值在swap函数执行结束后就失效了,所以,在main函数中调用swap函数,没有实现交换功能,是因为出了函数就失效了。

调用swap函数,实际上是将5赋值给swap函数的a,将6赋值给b,而swap函数中的a和b只是形参,一个名称而已,和main中的a和b没有关系。swap函数中的a和b交换了,但main中的a和b没有变化。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97163.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EMC测试中的电流探头

专栏 专注介绍电磁兼容(EMC)的相关知识,算是对本人浸染 EMC 专业十余年的一个阶段小结 。 本文目录1.EMC测试中的电流探头是什么?2.电流探头的主要指标要求3.什么是转移阻抗?1.EMC测试中的电流探头是什么? …

校园兼职网站

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 网站前台:关于我们、联系我们、资讯信息、企业信息、职位信息 管理员模块: 1、管理关于我们、联…

vTESTstudio入门到精通 - vTESTstudio工具栏介绍_File

vTESTstudio作为跟CANoe工具并套使用的一个强大的工具,那么想要用好它就得对他有个全面的认识,第一步起码要知道tade工具栏都包含哪些功能要清楚,今天我们就着重分享下vTESTstudio工具栏包含哪些内容,以便在我们编程的时候更好的去…

java 瑞吉外卖day2 笔记 员工增加 员工信息分页查询

PostMapping public R save(HttpServletRequest request,RequestBody Employee employee){log.info("新增员工:{}",employee);//设置初始密码123456 需要进行md5加密employee.setPassword(DigestUtils.md5DigestAsHex("123456".getBytes()));em…

homeassistant 接入小米温湿度计2

方法可能有很多种,但是我只用这种方法介入成功了 环境: - 香橙派(自带蓝牙,树莓派应该也可以) - 小米温湿度计2 - 网站:Telink Flasher v4.7 、 Telink Flasher (atc1441.github.io) - 固件&#xff1…

基于java+springmvc+mybatis+vue+mysql的高校普法系统

项目介绍 随着信息化时代的到来,管理系统都趋向于智能化、系统化,高校普法系统也不例外,但目前国内的市场仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而…

堆排序快速排序插入排序

堆排序 数据结构使用的是1 dimension的数组来作为二叉树的堆结构,所以并没有使用结构体,而是直接使用了数组 而且堆是完全二叉树,也就是除了最后一层以外,其他层都是满二叉树,最后一层可能不满,所以1dime…

基于jeecgboot的flowable流程支持服务任务的功能

1、描述 Java服务任务用于调用外部Java类。 2、图形表示法 服务任务可视化为圆角矩形,左上角有一个小齿轮图标,如下图: 3、XML表示 有三种方法声明如何调用Java逻辑,下面分别介绍: 调用固定的类 使用flowable:cla…

Flask打开调试模式

调试模式 Flask支持本地开发,但是每次修改代码后需要手动重新启动程序,这不是很友好,事实上Flask支持调试模式来做到更好,Flask服务会在代码更改时自动重新加载,如果出现问题,还能提供调试器以供调试 如何…

docker登陆MySQL提示密码错误,Navicat也连接不上

问题原因 今天在操作自己云服务器MySQL数据库的时候发现使用root进行远程登录的时候被拒绝了,一直提示Access denied for user ‘root‘‘localhost‘ (using password: YES)。 可以确认自己账号密码是没有错的。后来以为是远程访问出问题了,进入到容器…

JavaSE基础篇:泛型说明

本文整理自B站:JavaSE强化教程泛型,由点到面的讲解了整个泛型体系第一章:泛型概述一:泛型概念二:泛型类1:泛型类使用2:泛型类派生子类1):子类也是泛型类2):子类不是泛型类…

SQL进阶笔记

SQL进阶笔记 CASE表达式 简单case表达式 case sexwhen 1 then 男when 2 then 女else 其他 end搜索case表达式 case when sex 1 then 男when sex 2 then 女else 其他 end编写SQL语句的时候需要注意,在发现为真的WHEN子句时,CASE表达式的真假值判断就会中…

Java并发编程(一)—— FutureTask超详细教程

一、前言 创建线程有几种方式?这个问题的答案应该是可以脱口而出的吧: 继承 Thread 类实现 Runnable 接口但这两种方式创建的线程是属于三无产品: 没有参数没有返回值没办法抛出异常用着三无产品总是有一些弊端,其中没办法拿到返回值是最让人不能忍的,于是 Callable 就诞…

TeamsApp LukcyDraw升级之路 之 DB Infra 篇

今天继续 LuckyDraw 的升级之路,之前在1500以上用户同时使用的时候,特别是在短时间内大家一起点击参与抽奖参的时候,服务会出现大量的错误,分析后发现,出现错误的原因基本都是 Azure Storage Table 返回的。当时使用 A…

【GRU回归预测】基于matlab卷积神经网络结合门控循环单元CNN-GRU数据预测(多输入单输出)【含Matlab期源码 2274期】

⛄一、CNN-GRU数据预测 1 理论基础 1.1 CNN算法 负荷序列数据为一维数据,用一维卷积核对数据进行卷积处理,以获取数据的特征。 现设定卷积核的维度为3,移动步长为1,对输入数据进行卷积,以获得特征图图谱,即…

记录那不用百度的美好代码

努力工作,日益消瘦,总有些代码不想记住。我称之为:拿来即用系列 一:格式化时间 1.去除时间的T // 去除日期中T function timeFormatSeconds(time) {if(!time) return time;var date time.substr(0, 10); //年月日var hours ti…

jsp+ssm计算机毕业设计宠物商城【附源码】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSPSSM mybatis Maven等等组成,B/S模式 Mave…

基于SPRINGBOOT的健康饮食管理系统

11-8开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 基于springboot框架,通过对事物健康程度的总结与归纳,进行软件设计,并通过优秀的…

go 语言Http服务器远程执行shell命令

背景 想要在服务器上起一个http服务器,用来远程执行shell命令并且返回。 基础版 package mainimport ("io""log""net/http" )func main() {// Hello world, the web serverhelloHandler : func(w http.ResponseWriter, req *http.R…

性能脚本:用案例和图示帮你理解HTTP协议

当前使用得最为广泛的应用层协议就是 HTTP 了。我想了好久,还是觉得应该把 HTTP 协议写一下。 因为做性能测试分析的人来说,HTTP 协议可能是绕不过去的一个槛。在讲 HTTP 之前,我们得先知道一些基本的信息。 HTTP(HyperText Transfer Protocol,超文本传输协议),显然是…