第二章 处理数据
c++ 变量分类:
- 基本类型
算数类型
-
- 整型
- 符号整型 signed char,short,int,long,long long
- 无符号整型 char,unsigned short,unsigned int,unsigned long,unsigned long long
- bool类型
- wchar_t,char16_t,char32_t
- 浮点型 、
- float,double,long double
- 整型
指针类型
-
- 空类型 void
- 复合类型
- 数组
- 字符串
- 结构体
- 共用体(联合体)
- 指针类型
- 模板类
1、简单变量
1.1变量名
- 名称只能用字母、数字、下划线
- 名称第一个字符不能为数字
- 区分大小写
- 不能使用c++关键字做名称
- 以两个下划线(__)及下划线+大写字母(_B)打头的名称保留给实现(编译器及其使用的资源)使用
- 以一个下划线打头的名称被保留给实现,用作全局标识符(使用后编译器不会报错,但会导致行为的不确定性,不知道结果会是什么)
- c++对名称长度没有限制,但有些平台有长度限制
1.2 整型
1.2.1基本整型:
每种类型最多能够表示4种不同的整数宽度(用于描述存储整数时使用的内存量,使用的内存量越多,则越宽)
1.2.2 位和字节
位(bit)是计算机内存的基本单位,8位内存块可设置256种不同组合(unsigned 可表示0~255,signed 可表示-128~127),16位可以有65536种不同组合......
字节(byte)通常指8位的内存单元。是描述计算机内存量的度量单位(1KB = 1024byte 1MB = 1024KB)。
c++中的字节 由至少能够容纳实现的基本字符集 的相邻位组成,即每个字节必须能够表示 采用的字符集中 最大的字符。通常ASCII字符集和EBCDIC字符集 字符集包含的字符数<256 所以用8位容纳即可,而Unicode编码比较大,因此实现需使用16bit,甚至32bit的字节。
1.2.3 字节大小对可移植性的影响
当前很多系统都使用最小长度 即short 16位,long 32位 但对int提供多种选择 其宽度可以是 16位、24wei、32位甚至可以是 64位(这时long至少也为64位)。
通常在老式pc机中int为 16位,windows中int为32位(与long相同)。这可能在将c++程序从一种环境移植到另一种环境时(包括统一系统的不同编译器)时引发问题。
可通过sizeof运算符来返回类型或变量的长度,单位为字节(不同系统中字节表示的位数可能不同,在一个系统中,2个字节的int 可能是16位(8bit = 1byte),在另一个系统中,可能是32位(16bit = 1byte))。
climits文件中的实现:
#define INT_MAX 32767
#define 为预处理器编译指令,表示在编译前,先将INT_MAX 替换为 32767 后再编译。#define 也可定义自己的符号常量,它为C中遗留下来的,c++中可通过const关键字来创建符号常量,故不常使用#define。但是,被设计成同时用于C和C++的头文