如何定义C++中的C++数据类型

开发 后端
许多编程人员学习C++数据类型总结经验为,有的觉得C++语言是一门独立的语言,并不是在C语言的基础上,可以直接学习C++不必先从C下手。

本文着重介绍C++数据类型,C++中的C++数据类型定义编译器在内存中存放信息的方式,在不同的开发环境中,可以向变量赋予任何数值类型,翻译器能考虑根据数字长度和类型分配空间。

而在C++,则必须先声明变量类型再使用变量:int x1 = 1;int x = 1000;float y = 3.14;long z = 457000;这样,编译器就可以进行类型检查,确保程序运行时一切顺利。数据类型使用不当会导致编译错误或警告,以便分析和纠正之后再运行。

有些数据类型有带符号和无符号两种。带符号(signed)C++数据类型可以包含正数和负数,而无符号(unsigned)数据类型只能包含正数。表1.1列出了C++中的数据类型、所要内存量和可能的取值范围。

char 1 -128到126   
 
unsigned char 1 0到255   
 
short 2 -32,768到32,767   
 
unsigned short 2 0到65,535   
 
long 4 -2,147,483,648到2,147,483,648   
 
unsigned long 4 0到4,294,967,295   
 
int 4 同long   
 
unsigned int 4 同unsigned long   
 
float 4 1.2E-38到3.4E381   
 
double 8 2.2E-308到1.8E3082   
 
bool 1 true或false  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

从上表可以看出,int与long相同。那么,为什么C++还要区分这两种C++数据类型呢?实际上这是个遗留问题。在16位编程环境中,int要求2个字节而long要求4个字节。而在32位编程环境中,这两种数据都用4个字节存放。C++Builder只生成32位程序,所以int与long相同。

说明 在C++ Builder和BorLand C++ 5.0中,Bool是个真正的数据类型。有些C++编译器有Bool关键字,则Bool不是个真正的数据类型。有时Bool只是个typedef,使Bool等价于int。

typedef实际上建立别名,使编译器在一个符号与另一符号间划上等号。typedef的语法如下:typedef int Bool;这就告诉编译器:Bool是int的别名。说明 只有double和float数据类型使用浮点数(带小数点的数)。其它C++数据类型只涉及整数值。

尽管integer数据类型也可以指定带小数点的数值,但小数部分会舍弃,只将整数部分赋予整型变量,例如:int x=3.75;得到的x取值为3。注意,这个整数值并不是四舍五入,而是放弃小数部分。顺便说一句,大多数Windows程序很少用到浮点数。C++可以在必要时进行不同C++数据类型间的换算。

例如:short result;long num1 = 200;long num2 = 200;result = num1 * num2;这里我想将两个长整型的积赋予一个短整型。尽管这个公式混用了两种数据类型,但C++能够进行换算。

计算结果会怎样呢?结果会让你大吃一惊,是25536,这是绕接(wrop)的结果。从表1.1可以看出,短整型的***取值为32767,在***值之上加1会怎么样呢?得到的是32768。这实际上与汽车里程计从99999回到00000的道理一样。为了说明这点,请输入并运行下列清单1.3中包含的程序。

【编辑推荐】

  1. 简介学习C++总结之谈
  2. C++库函数进行学习探索总结笔记
  3. C++类库设计的基本构思与方法
  4. C++语言真的还有市场价值?
  5. C++类库设计的基本构思与方法
责任编辑:chenqingxiang 来源: 博客园
相关推荐

2010-01-25 10:41:59

C++数据类型

2024-03-14 11:54:37

C++数据类型

2010-01-19 13:01:32

C++数据类型

2010-01-13 17:32:02

C++数据类型

2010-01-19 13:17:05

C++数据类型

2010-01-25 10:25:19

C++变量

2010-01-28 16:31:54

C++类型

2010-01-27 10:53:55

C++数据类型

2010-01-28 13:27:12

C++类定义

2010-01-28 13:45:06

C++数组

2023-09-12 11:44:02

C++数据对齐

2010-01-21 09:34:57

C++语法

2010-01-27 16:05:06

C++堆栈

2010-01-21 14:07:14

CC++声明

2010-01-26 15:51:06

C++变量

2010-01-20 10:19:55

C++数组

2010-01-21 13:33:44

C++基类

2010-01-27 17:16:52

C++构造函数

2020-08-21 13:20:36

C++If ElseLinux

2010-01-26 10:42:26

C++函数
点赞
收藏

51CTO技术栈公众号