- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
21数据类型(daa
第二章 C和C++语言基本知识
2.1 数据类型(data types)
程序的主要任务之一是处理数据。
C++语言中,数据的类型可归纳为两大类:第一类是C++系统所提供的一系列基本数据类型,称为“预定义数据类型(pre-defined data type)”;第二类是用户自己所定义的一系列数据类型,称为“用户自定义数据类型(user-defined data type)”。
本章主要介绍 “预定义数据类型”,而从第三章开始将陆续介绍“用户自定义数据类型”。
各“预定义数据类型”可用以下关键词表达,例如:
int,char,double,bool,long等。
程序可以为各类数据类型建立各个变量(variable),例如建立整型变量j,如下:
int j;
其中int是整型数据类型,而j则是整型变量。
变量被称为数据类型的实例(instances),建立变量的过程称为实例化(instantiation)。
2.1.1 各种数据类型的长度
所有数据类型的变量都在内存中占据一定空间,其长度可使用sizeof来确定。sizeof是一个宏而不是函数(本章§2.6.4中将介绍宏与函数的区别),它在系统的编译阶段就已求值了。这里它用于求某个变量在内存中的长度,也即该变量所占有的字节数。其使用格式为:
对于变量int a;
可用
sizeof(a);或
sizeof(int);
其它如sizeof(double);等
[例1]读取预定义(即由C++系统本身所定义的)类型数据的长度(这些数据的说明见任何一本C语言书籍)
// var_size.cpp
// To check the sizes of different kinds of variables
#include iostream.h
void main()
{
coutsizeof(char) :sizeof(char)endl;
coutsizeof(bool) :sizeof(bool)endl;
coutsizeof(short) :sizeof(short)endl;
coutsizeof(int) :sizeof(int)endl;
coutsizeof(unsigned) :sizeof(unsigned)endl;
coutsizeof(long) :sizeof(long)endl;
coutsizeof(float) :sizeof(float)endl;
coutsizeof(double) :sizeof(double)endl;
coutsizeof(long double) :sizeof(long double)endl;
}
/* Results:
sizeof(char) :1
sizeof(bool) :1
sizeof(short) :2
sizeof(int) :4
sizeof(unsigned) :4
sizeof(long) :4
sizeof(float) :4
sizeof(double) :8
sizeof(long double) :8
*/
此结果在16位机上是不同的(但现已不用16位机)。
2.1.2 整型数据
例如int j;(可正可负的整数)和
unsigned int i;(正整数)
它们各占32个二进制位(四个字节)的空间。这32个二进制位可用四种方式表示一个整数值:二进制、八进制、十进制和十六进制。以十进制值15为例,可表示如下表中任何一种形式:
二进制 八进制 十进制 十六进制 1111 017 15 0xF(或0xf) 这四种表示方式之间的数值关系请见文件appendix.doc中附录一“不同基数制的整数表示方式”。
2.1.2.1 正整数
整数有两类:
第一类为:“unsigned int i;”
表示使用32位表示正整数i,它不可能为负值。其范围为0至约为4.2x109,即0至(232-1)(约为 0至 +42亿,确切地为4,294,967,648,中国人口统计已够用)。
现以二进制8位为例表示正整数13:
13 = 0 0 0 0 1 1 0 1
128 64 32 16 8 4 2 1
其中最高有效位(MSB, Most Significant Bit)表示128,最低有效位(LSB, Least Significant Bit)表示1。
2.1.2.2 负整数
第二类整数为:“[signed] int j;”表示使用32位表示可正可负的整数j,其范围约为–21亿至 +21亿,即-232
文档评论(0)