博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++数据类型
阅读量:4297 次
发布时间:2019-05-27

本文共 1259 字,大约阅读时间需要 4 分钟。

计算机处理的对象是数据,而数据是以某种特定的形式存在的(例如整数、浮点数、字符等形式)。不同的数据之间往往还存在某些联系(例如由若干个整数组成一个整数数组)。数据结构指的是数据的组织形式。例如,数组就是一种数据结构。不同的计算机语言所允许使用的数据结构是不同的。处理同一类问题,如果数据结构不同,算法也会不同。例如,对10个整数排序和对包含10个元素的整型数组排序的算法是不同的。


图2.1  
C++可以使用的数据类型

C++的数据包括常量与变量,常量与变量都具有类型。由以上这些数据类型还可以构成更复杂的数据结构。例如利用指针和结构体类型可以构成表、树、栈等复杂的数据结构。


表2.1  
数值型和字符型数据的字节数和数值范围

C++并没有统一规定各类数据的精度、数值范围和在内存中所占的字节数,各C++编译系统根据自己的情况作出安排。表2.1列出了Visual C++数值型和字符型数据的情况。


几点说明:

1) 整型数据分为长整型(long int)、一般整型(int)和短整型(short int)。在int前面加long和short分别表示长整型和短整型。


2) 整型数据的存储方式为按二进制数形式存储,例如十进制整数85的二进制形式为1010101,则在内存中的存储形式如下图所示。

0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1
 
3) 在整型符号int和字符型符号char的前面,可以加修饰符signed(表示“有符号”)或unsigned(表示“无符号”)。如果指定为signed,则数值以补码形式存放,存储单元中的最高位(bit)用来表示数值的符号。如果指定为unsigned,则数值没有符号,全部二进制位都用来表示数值本身。例如短整型数据占两个字节 ,见图2.2。


图2.2

有符号时,能存储的最大值为215-1,即32767,最小值为-32768。无符号时,能存储的最大值为216-1,即65535,最小值为0。有些数据是没有负值的,可以使用unsigned,它存储正数的范围比用signed时要大一倍。


4) 浮点型(又称实型)数据分为单精度(float)、双精度(double)和长双精度(long double)3种,在Visual C++ 6.0中,对float提供6位有效数字,对double提供15位有效数字,并且float和double的数值范围不同。对float分配4个字节,对double和long double分配8个字节。



5) 表中类型标识符一栏中,方括号[ ]包含的部分可以省写,如short和short int等效,unsigned int和unsigned等效。


常量的值是不能改变的,一般从其字面形式即可判别是否为常量。常量包括两大类,即数值型常量(即常数)和字符型常量。如12, 0, -3为整型常量,4.6, -1.23为实型常量,包含在两个单撇号之间的字符为字符常量,如′a′, ′x′。这种从字面形式即可识别的常量称为“字面常量”或“直接常量”。

转载地址:http://sxcws.baihongyu.com/

你可能感兴趣的文章
(P17)muduo_base库源码分析:线程安全Singleton类实现
查看>>
(P18)muduo_base库源码分析:线程特定数据,ThreadLocal类的封装
查看>>
(P19)muduo_base库源码分析:ThreadLocalSingleton封装
查看>>
(P20)muduo_base库源码分析:日志作用,日志级别,Logger使用时序图
查看>>
(P21)muduo_base库源码分析:日志类封装,StringPiece类
查看>>
(P22)muduo_base库源码分析:日志滚动条件
查看>>
(P23-P24)多线程与并发服务器设计
查看>>
(P25)muduo_base库源码分析:TCP网络编程最本质是的处理三个半事件,EchoServer类图,什么都不做的EventLoop
查看>>
(P26-P27)muduo_base库源码分析:muduo网络库的类图,定时器函数选择
查看>>
(P28)muduo_base库源码分析:定时器,lower_bound&upper_bound,RVO
查看>>
(P29)muduo_base库源码分析:进程(线程)wait/notify
查看>>
(P30)muduo_base库源码分析:EventLoopThread
查看>>
(P31)muduo_base库源码分析:Socket封装
查看>>
(P32)muduo_base库源码分析:Acceptor
查看>>
(P33)muduo_base库源码分析:TcpServer/TcpConnection
查看>>
(P34)muduo_base库源码分析:TcpConnection生存期管理
查看>>
(P35)muduo_base库源码分析:muduo库如何支持多线程,multiple reactors
查看>>
(P36-P37)muduo_base库源码分析:应用层缓冲区Buffer设计 ,epoll使用LT模式的原因,其他缓冲区设计方案 ,TcpConnection中增加send,shutdown
查看>>
(P38)muduo_base库源码分析:完善TcpConnection,signal(SIGPIPE, SIG_IGN) ,可变类型解决方案
查看>>
(P39)muduo_base库源码分析:muduo库对编写tcp客户端程序的支持
查看>>