对于C++数据类型说明

开发 后端
Visual C++和Borland C++ Builder是Windows操作系统上常见的C++开发工具。前者是微软公司出品的,应用广泛。。。

在向大家详细介绍C++数据类型之前,首先让大家了解下C++数据类型,然后全面介绍C++数据类型,以及C++数据类型长度问题,在这里拿出来和大家分享一下,希望对大家有用。。。

C语言中的整数类型有char, short, int, long等几种, 下面是C语言对每种数据类型长度的规定:
(a). short和long类型的长度不相同
(b). int类型通常同具体机器的物理字长相同
(c). short通常是16bits, int通常是16bits or 32bits每种编译器可以根据硬件的不同自由确定, 但是short和int必须最少是16bits, 而long类型必须最少是32bits, 并且short必须比int和long类型要短。

sizeof() 运算符返回的是一种数据类型中所包含的字节数(bytes), AnsiC规定sizeof(char)必须返回1,当sizeof作用于数组时, 返回的是数组中所有成员所占的字节数(注意并不是数组中成员的个数), 当sizeof()作用于结构体和公用体时,返回的不仅仅是数据成员总的字节数, 还包括编译器为了实现字节对其而填充的那些字节。

C++数据类型长度问题:
一、字节和字长
字节,八位就是一个字节,是固定概念。字长是指计算机一次能处理的二进制数据的长度,是一个非固定的概念。例如,8位计算机的字长为8,即一个字节, 32位计算机的字长位32,即4个字节,同理,64位计算机的字长为64,即8字节。

二、C++中的C++数据类型
1、字符型数据char,该类型始终是一个字节长,即8位。
2、整形int、短整型short和长整形long。通常int为一个字长,short为半个字长,long为一个或2个字长(在32位机器中为一个字长)。
3、浮点型float、双精度double、和长双精度long double,分别表示单精度浮点数 双精度浮点数和扩展精度的浮点数值。典型情况下,float 为一个字,double是两个字,long double为两个或三个或四个字。

显然,如果找不出要C++数据类型的理由,那么谈什么“正确的学习方法”等于是废话。 首先重复一句Bjarne的话:“我们的系统已经是极度复杂的了,为了避开C++的复杂性而干脆不用C++(Linus的做法),无异于因噎废食。”在所有可用C和C++的领域,C++都是比C更好的语言。

当我说“更好的”时候,我说的是C++拥有比C更安全的类型检查、更好的抽象机制、更优秀的库。当然,凡事都有例外,如果你做的项目1)不大。2)编码中用不到什么抽象机制,甚至ADT(抽象数据类型。

如std::complex这种不含多态和继承的)也用不到,RAII也用不到,异常也用不到。3)你连基础库(如,简化资源管理的智能指针、智能容器)都用不着。那么也许你用C的确没问题;所以如果你的情况如此,不用和我争论,因为我无法反驳你。我们这里说的领域大致是Bjarne在“C++应用列表”里面列出来的那些地方。

底线是:如果把C++中的诸多不必要的复杂性去掉,留下那些本质的,重要的语言特性,简化语言模型,消除历史包袱。即便是C++的反对者也许也很难找到理由说“我还是不用C++”。在我看来,一个真正从实践意义上理性反对使用C++的人只有一个理由:C++的复杂性带来的混乱抵消乃至超过了C++的抽象机制和库(在他的特定项目中)带来的好处。 #t#

值得注意的是,这里需要避免一个陷阱,就是一旦人们认定了C++数据类型,那么这个理由就会“长出自己的脚来”,即,就算我们拿掉C++的复杂性,他们可能也会坚持还是不用C++,并为之找一堆理由。我假定你不是这样的人。

不过,也许最可能的是他会说:“问题是我们今天用的C++并非如此(简洁),你的假设不成立。”是的,我的假设不成立。但虽然我们无法消除复杂性,我们实际上是可以容易地避开复杂性,避短扬长的。这也是本文的要点,容我后面再详述。

责任编辑:chenqingxiang 来源: 51CTO
相关推荐

2024-03-14 11:54:37

C++数据类型

2010-01-19 17:54:47

C++程序

2010-01-25 10:41:59

C++数据类型

2010-01-19 13:17:05

C++数据类型

2010-01-18 10:01:48

C++中访问控制

2010-01-20 09:54:27

C++数据类型

2010-01-27 10:53:55

C++数据类型

2010-01-19 13:32:20

C++操作符

2023-09-12 11:44:02

C++数据对齐

2010-01-13 10:09:24

C++标准库

2010-01-13 16:08:31

C++语言

2010-01-19 13:01:32

C++数据类型

2011-06-08 13:35:18

C#数据类型

2009-09-07 10:48:53

C#数据类型

2009-08-27 15:47:00

C#数据类型string

2009-09-04 10:16:30

C#数据类型

2010-01-15 15:13:28

C++概述

2010-01-14 17:42:47

CC++

2010-08-25 13:36:53

DB2Oracle

2010-01-26 13:42:28

C++指针
点赞
收藏

51CTO技术栈公众号