Java语言数据类型与c语言数据类型的不同

目录

一、c语言数据类型

1.基本类型:

2.枚举类型:

3.空类型:

4.派生类型:

二、C语言编程需要注意的64位和32机器的区别  

三、 不同之处


一、c语言数据类型

首先,先来整体介绍一下C语言的数据类型分类。

1.基本类型:

1.1 整型类型:基本整型(int)、短整型(short int)、长整型(long int)、双长整型(long long int)、字符型(char)和布尔型(bool)。
注:整型数据可在类型符号前面加修饰符:signed(有符号整数类型)和unsigned(无符号整数类型),若不指定则默认为“有符号类型”。

1.2 浮点类型:单精度浮点型(float)、双精度浮点型(double)


2.枚举类型:

枚举类型。枚举类型就只有枚举类型(enum)。


3.空类型:

空类型。空类型就只有空类型(void)。


4.派生类型:

派生类型。派生类型包含:指针类型(*)数组类型([ ])结构体类型(struct)共用体类型(union)

给大家一个思维导图仅供参考

二、C语言编程需要注意的64位和32机器的区别  

数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:

32位平台下:

char1字节
short:2字节
int4字节
long4字节
long long8字节
float4字节
double8字节
bool1字节
指针         4个字节

64位平台下 :

char1字节
short:2字节
int4字节
long4字节
long long8字节
float4字节
double8字节
bool1字节
指针         8个字节

申明一下,这个表并没有涵盖所有的基础数据类型。

如果对字节还不是特别理解的,可以看看我的这篇文章:http://t.csdn.cn/myTeu

三、 不同之处

Java的数据类型和c语言的数据类型有很多相同的地方但也有很多不同的地方

在Java中数据类型主要分为两类:基本数据类型引用数据类型

基本数据类型有四类八种:

1. 四类:整型、浮点型、字符型以及布尔型
2. 八种:

1. Java代码是运行在JVM虚拟机中的,跟操作系统没关系,所以不论是在32位系统还是64位系统,Java中的 int都占用4个字节,long都占8个字节,而c语言中则要分系统来看。

2. Java中的char是两个字节,这是由于Java使用的是Unicode字符集,它能表示的字符量远远大于ASCII字符集,并且包括了许多语言,比如中文,拉丁文等等。因此按c语言的char容量(255),是远远不够存放。因此java的char容量也来到了2字节,Java中的char是无符号数,则它的容量则有65535。因此,Java的字符类型也可以表示许多c语言无法表示的字符。而c语言中默认char类型是有符号的,在c语言中,表示不出汉字。

3. Java语言中有byte字节型这个类型,而c语言中没有。

4. Java语言中有字符串类型,而c语言中没有。

5. Java语言的整型类型没有C语言中所谓的有符号类型和无符号类型,Java的整型类型即可表示正数,又可表示负数。

6. Java中引入了c语言中没有的boolean类型(布尔类型),用于表示真假,其中布尔类型true为真,false为假。值得注意的是:这也导致c语言中0为假,非0为真的说法在Java中是不成立的。 

7. Java中的字面值都有默认的类型,比如整数1,默认类型为int型,如果要写一个long类型的变量,只能写出long a=1L(其中L可以是小写),浮点型也有相似的规定,小数都默认为double类型,因此要写一个float类型的变量,则只能写float b=0.5f(f可以是大写)。

8. Java中如果局部变量不赋值,那么将不会通过编译,编译器就会报错,而c语言则可以不初始化,只是局部变量是一个随机值。

9. Java当中相应的数据类型,只能由小字节数赋值给大字节数,而c语言则没有影响。比如,Java中double类型的数据不可以赋值给float类型,而c语言中则不受影响。
 

以上就是Java语言与c语言在数据类型上的一些不同,如果有错误和缺少,欢迎大家指正。 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早点睡觉1.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值