目录
一、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位平台下:
char | 1字节 |
short: | 2字节 |
int | 4字节 |
long | 4字节 |
long long | 8字节 |
float | 4字节 |
double | 8字节 |
bool | 1字节 |
指针 | 4个字节 |
64位平台下 :
char | 1字节 |
short: | 2字节 |
int | 4字节 |
long | 4字节 |
long long | 8字节 |
float | 4字节 |
double | 8字节 |
bool | 1字节 |
指针 | 8个字节 |
申明一下,这个表并没有涵盖所有的基础数据类型。
如果对字节还不是特别理解的,可以看看我的这篇文章:http://t.csdn.cn/myTeu
三、 不同之处
Java的数据类型和c语言的数据类型有很多相同的地方但也有很多不同的地方
在Java中数据类型主要分为两类:基本数据类型和引用数据类型
基本数据类型有四类八种:
1. 四类:整型、浮点型、字符型以及布尔型
2. 八种:
1. 不论是在32位系统还是64位系统,Java中的 int都占用4个字节,long都占8个字节,而c语言中则要分平台来看。
2. Java中的char是两个字节,这是由于Java使用的是Unicode字符集,它能表示的字符量远远大于ASCII字符集,并且包括了许多语言,比如中文,拉丁文等等。因此按c语言的char容量(255),是远远不够存放。因此java的char容量也来到了2字节,由于我们都知道的,Java中的cha是无符号,则容量则有65535。因此,Java的字符类型也可以表示许多c语言无法表示的字符。而c语言中默认char类型是有符号的。
3. Java语言中有byte这个类型,而c语言中没有。
4. Java语言中有字符串这个类型,而c语言中没有。
5. Java语言的整数型没有所谓的有符号和无符号,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可以是大小写)。
以上就是Java语言与c语言在数据类型上的一些不同,如果有错误和缺少,欢迎大家指正。