java和C语言在数据类型和语法上的比较
一.数据类型
1.Java:Java的数据类型可分为两大类:
①基本数据类型:byte、short、int、long、double、float、boolean、char
②引用数据类型:类、接口、数组、枚举、注解
~int 类型占四个字节
~常量有final关键字修饰。
~定义float类型时,赋值时一定要在浮点数后加f,否则自动视为double类型,且会编译失败。
~Java中当高精度赋值给低精度类型时,会编译失败,显示不兼容的类型。
~Java中字符型中字符对应的Unicode编码,占2字节,可以保存单个汉字。
~java整数默认为int,超过int类型要加L,建议大写,否则容易和1搞混.,小数默认double.
~java布尔值输出就是false,和true
~java是强类型语言,在基本数据类型的赋值和转化上比较严格
2.C语言:C语言的数据类型可分为:
①基本数据类型:short int、int(由硬件决定可能2字节也可能四字节)、long int、double、float、char、long longint(C99增加)、long double、bool(C99增加)、float_complex、double_complex、long long _complex
②枚举类型:enum
③空类型:void
④派生类型:指针类型(*)、数组类型([])、结构体类型(struct)、共用体类型(union)、函数类型
-常量由#define定义。
-C语言中定义浮点型不会出现java中的问题。
-C语言中当高精度赋值给低精度类型时,会有精度缺失,但并不会造成编译失败。
-C语言中字符型中字符对应ASCII码。
-C语言中char占一个字节,不能保存单个汉字。
~没有boolean类型的变量,正数代表true,非正数代表false
3.标识符
Java:Java标识符有如下命名规则:
1、标识符由字母、数字、 “_”、 “$”组成,且首字母不能是数字(实际上其他语言中的字符也可以);2、不能把Java关键字作为标识符;3、标识符没有长度限制;4、标识符对大小写敏感。5、自定义标识符最好取具有一定意义的字符串,便于记忆和理解。
C语言:C语言标识符有如下规则:
1、标识符必须以字母a~z、 A~Z或下划线开头,后面可跟任意个(可为0)字符,这些字符可以是字母、下划线和数字,其他字符不允许出现在标识符中。2、标识符区分大小写字母 3、标识符的长度,c89规定31个字符以内,c99规定63个字符以内 4、C语言中的关键字,有特殊意义,不能作为标识符
4.运算符
java中"+"还可以作为字符串的连接符.
二.语法
1.Java与C内存分配不同:
①.Java中内存分配五个区,分别为栈区(存储的是局部变量,使用完毕,立即回收),堆区(存储的是new出来的东西,实体,对象,每一个对象都有地址值,每个对象的数据都有默认值,使用完毕后,会在垃圾回收器空闲的时候回收),方法区,本地方法区(和系统相关),寄存区(给cpu使用)。
②.C中内存分配四个区,分别为栈区(存储函数参数,局部变量的值),堆区(动态内存申请与释放,若程序员不释放内存,则程序结束后可能由操作系统释放),全局区(静态区),代码区。
2.数组的建立机制不同
Java数组初始化分为动态初始化和静态初始化:
①动态初始化只给出长度,由系统给出初始化值。它的形式为:int[]arr=new int[3],(3表示一维数组中有三个元素,此时的[]被预定义为检查数组边界,没有指针运算,即不能通过a+1得到数组的下一个元素)
B.静态初始化给出初始化值,由系统决定长度。它的形式为:int[]arr={1,2,3}.
而C语言中定义一个动态数组形式为:int a=(int)malloc(sizeof(int)*3),定义一个静态数组形式为:int a[3]。
3.变量定义的约束
在java方法中,变量的范围和C语言相同,都是从变量定义开始,到函数结束;但是在类中成员变量声明的位置和方法没有规定,即在方法后声明的变量在前面的方法中任能调用,但是一般习惯将成员变量声明在前,方法声明在后.
.
java和C语言在数据类型和语法上的比较相关推荐
- python和c语言和java有什么区别_python和c的区别 python、java和c语言的区别?
Python和c语言有什么区别如果我的坚强任性,会不小心伤害了你.你能不能温柔提醒,我虽然心太急,更害怕错过你 前者为 脚本语言 需要虚拟机 解释执行 ..一般情况下 不能生成exe(要使用打包工具) ...
- python和java和c语言的区别,python和java哪个更值得学
java和python是什么? java和python都是一种面向对象的语言.Java是一种面向对象的语言,有着和C/C++近似的语法.它是动态链接,允许新的代码在运行时加载与运行,而不是动态类型的. ...
- 201671010139 2016-2017-2 JAVA 和C语言的语法区别
java和c语言的语法上有很多相似的地方,但也有很多不同. 一,在初始值的区别 在C语言中,是可以不初始化使用的 而在JAVA中,是必须初始化值的 初始化问题上:java在声明时,可以不初始化,但是在 ...
- 【Groovy】Groovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )
文章目录 一.Groovy 支持 Java 语法 二.Groovy 支持 Java 虚拟机 三.Groovy 语言是 动态语言 四.Groovy 扩展 JDK 五.Groovy 编译时元编程 一.Gr ...
- Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...
Java语言程序设计 上机实验2 实验目的: 掌握Java的基本语言成分和流程控制语句. 掌握Java中数组的使用,理解引用数据类型. 掌握String类的使用. 实验内容: 注:标(*)为选做内 ...
- 磨刀不误砍材工 - Java的基础语言要素(从变量/常量切入,看8种基本数据类型)
变量与常量是一个Java程序组成的重要部分. 我们可以将变量与常量理解为数据的载体,而从名称上我们也可以看出二者的不同: 常量代表不能改变的数据值,而变量的值则存在可变性. 在我们回顾Java中的关键 ...
- Python同Java同Js语言语法区别之四判断字符串列表字典是否相等
字符串列表字典是否相等 前言 Python 字符串or数字 列表 字典 总结 Java 字符串 数组 Map 总结 JS 字符串 数组 对象 总结 前言 作为一枚测开工程师,需要的技能是全栈的,项目中 ...
- java和c语言的语法区别_c语言和java的语法区别是什么?
c语言和java的语法区别 单文件的编译时间java比C语言快: C语言可以直接操作内存,java不能直接操作: C语言可以封装动态库,java不行: C语言的代码不容易跨平台,java的代码容易跨平 ...
- java和c语言语法上相同,C语言与Java的异同
C语言与Java的异同 作者:终南 自工作以来,先用VB.ASP这些编程:后来转用Java,对面向对象的语言有了些许了解,如今又主要用C语言写一些代码.由于学校的时候学过一些C语言的知识,后来也大略写 ...
最新文章
- Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)
- 经典php代码,10个非常经典的php代码片段.doc
- Python爬虫入门教程石家庄链家租房数据抓取
- 网络抓包工具wireshark and tcpdump 及其实现基于的libpcap
- 【汇编语言】记录一组数中负数的个数,8086与MIPS汇编程序
- TensorFlow和Keras解决大数据量内存溢出问题
- 20145213《信息安全系统设计基础》第二周学习总结
- Unity 使物体朝向某个方位
- js获取td的html,js中获取 table节点各tr及td的内容简单实例
- Client network socket disconnected before secure TLS connection was establishedView in Conso
- 自定义Android Switch控件
- #49:Photoshop技巧的大杂烩
- 2022-2028年全球及中国ODM智能手机行业投资前景分析
- 格式化输出编码问题!
- บาคาร่า ธุรกิจที่สร้างรายได้ดี
- Gartner 2020 年 SIEM 魔力象限
- 人工蜂群算法怎样添加路径
- Java面试基础知识II
- SLAM本质剖析番外-李群李代数的微分和导数
- 返回按钮悬浮(类似手机的悬浮按钮)