我是靠谱客的博主 狂野可乐,最近开发中收集的这篇文章主要介绍从Java到C++——基本数据类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


    基本数据类型是C++最基本的内容,虽然各种计算机语言的基本数据类型的含意和用法大体相同,但各种语言下基本数据类型的字节大小,数值范围等是不一样的,这也是程序开发都必须要了解的。

    Java中有8种基本的数据类型,详细内容请参见《Java中的50个关键字》 ,C++中基本数据类型的各类就多了。详细如下:

C++中,基本数据类型也称内置类型,有算术类型空类型。空类型(void)没有具体的值,只用于某些特殊的场合,如函数的返回值void。算术类型有整形数、浮点数、布尔类型和字符。

    下表列出了C++标准规定的尺寸的最小值,C++标准只给定了尺寸的最小值,同时允许编译器赋予这些类型更大的尺寸。所以同一个数据类型在不同平台不同操作系统下尺寸大小有可能不同。

C++:数据类型

分类

类型

含义

最小尺寸

整形数

short

短整形

16

int

整形

16

long

长整形

32

long long

长长整形

64

浮点数

float

单精度浮点数

6位有效数字

double

双精度浮点数

10位有效数字

long double

扩展精度浮点数

10位有效数字

布尔类型

bool

布尔类型

未定义

字符

char

字符

8

wchar_t

宽字符

16

char16_t

16unicode字符

16

char32_t

32unicode字符

32

 

我在win7 x64系统上用VS2010VS2013上测试了一下以上各种数据类型的大小如下:

void sizeTest()
{
	cout << "short:tt" << sizeof(short) << endl;
	cout << "int:tt" << sizeof(int) << endl;
	cout << "long:tt" << sizeof(long) << endl;
	cout << "long long:t" << sizeof(long long) << endl;
	cout << "float:tt" << sizeof(float) << endl;
	cout << "double:tt" << sizeof(double) << endl;
	cout << "long double:t" << sizeof(long double) << endl;
	cout << "bool:tt" << sizeof(bool) << endl;
	cout << "char:tt" << sizeof(char) << endl;
	cout << "wchar_t:t" << sizeof(wchar_t) << endl;
	cout << "char16_t:t" << sizeof(char16_t) << endl;
	cout << "char32_t:t" << sizeof(char32_t) << endl;
}

    结果为:

    

    这里上面的int就是4个字节32位,大于标准规定的16位。

整形数和char类型又有带符号的和无符号的之分

    shortintlonglong longchar都有带符号和无符号两种。带符号的(signed)类型可以表示正数、负数和0shortintlonglong longchar默认都带符号的。无符号的(unsigned)类型则只能表示正数和0,只需要在对应的类型名前面加unsigned,如unsigned intunsigned char。在计算机中数值是以二进制的形式存储的,带符号的类型第一位是符号位,用于表示正负数,1表示负数,0表示正数;无符号的类型没有符号位,所有位数都用于表示数值的大小。如以short类型的为例:

    7表示成如下

    00000000 00000111

    -7表示:

    10000000 00000111

    假设一个数据类型的尺寸大小为n位,则带符号的表示的数值范围是-2n-12n-1-1; 无符号的表示的数值范围是02n-1.

bool类型是只表示truefalse

    bool是用于表示正确(true)和错误(false)的一种逻辑类型,其中truefalse是一种标识符,应该是一种宏定义,true1false0。在程度中整数和浮点数都可以给bool类型的变量赋值,但只有当值为0时表示假,非0时都表示真。如下:

void BoolTest() 
{
	bool b1 = true;
	bool b2 = false;
	bool b3 = 0;
	bool b4 = 1;
	bool b5 = 5;
	bool b6 = -8;
	bool b7 = 1.25;
	cout << "true:t" << true << endl;
	cout << "false:t" <<  false << endl;
	cout << "b1:t" << b1 << endl;
	cout << "b2:t" << b2 << endl;
	cout << "0:t" << b3 << endl;
	cout << "1:t" << b4 << endl;
	cout << "5:t" << b5 << endl;
	cout << "-8:t" << b6 << endl;
	cout << "1.25:t" << b7 << endl;
}

结果为:

true:   1

false:  0

b1:     1

b2:     0

0:      0

1:      1

5:      1

-8:     1

1.25:   1

shortshort int是等价的

    在程度中常常能看到short int,是否又有什么不同呢?shortshort int应该是等价的,short应于修饰intshortshort int的简写。还有longlong int也是等价的。

如下程度:

	short st1 = 10;
	short int st2 = 10;
	long l1= 20;
	long int l2 = 20;
	cout << st1 << endl;
	cout << st2 << endl;
	cout << l1 << endl;
	cout << l2 << endl;
	cout << "short:tt" << sizeof(short) << endl;
	cout << "shot int:t" << sizeof(short int) << endl;
	cout << "long:tt" << sizeof(long) << endl;
	cout << "long int:t" << sizeof(long int) << endl;

结果如下:

10

10

20

20

short:          2

shot int:       2

long:           4

long int:       4

 

最后

以上就是狂野可乐为你收集整理的从Java到C++——基本数据类型的全部内容,希望文章能够帮你解决从Java到C++——基本数据类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部