一、数据类型与表达式
1、C++的数据类型
1.数据和类型**
计算机处理的对象是**数据,而数据是以某种特定的形式存在的(例如整数 浮点数 字符等形式)**
不同的数据之间往往还存在某些**联系**(例如由若干个整数组成 个整数数组)。
数据结构指的是数据的组织形式**。例如,数组就是一种数据结构。**
*
| 类型 | 类型标识符 | 字节 | 数值范围 | |
| —- | —- | —- | —- | —- |
| 整型 | [signed] int | 4 | -2147483648 ~ +2147483647 | |
| 无符号整型 | unsigned [int] | 4 | 0 ~ 4294967295 | |
| 短整型 | short [int] | 2 | -32768 ~ +32767 | |
| 无符号短整型 | unsigned short [int] | 2 | 0 ~ 65535 | |
| 长整型 | long [int] | 4 | -2147483648 ~ +2147483647 | |
| 无符号长整型 | unsigned long [int] | 4 | 0 ~ 4294967295 | |
| 字符型 | [signed] char | 1 | -128 ~ +127 | |
| 无符号字符型 | unsigned char | 1 | 0 ~ 255 | |
| 单精度 | float | 4 | 3.410~3.410 | |
| 双精度型 | double | 8 | 1.710~1.710 | |
| 长双精度型 | long double | 8 | 1.710~1.7*10 | |
2.常量与变量
常量:在程序运行过程中,其值一直保持不变的量为常量
常量也区分不同的类型:30,40 为整型,30.0,40.0为实型,<br /> 编辑器只是根据其表面形式来判断其类型。
变量:在程序运行过程中 其值可以改变的量为变量 在程序运行过程中
变量在程序执行中能够赋值,发生变化。变量有一个名字,并在使用之前要说
明其类型,一经说明,就在内存中占据与其类型相应的存储单元
变量的存储类型
auto存储类
属于一时性存储,其存储空间可以被若变量多次覆盖使用
register存储类
存放在通用寄存器中。
extern存储类
在所有函数和程序段中都可引用。
static存储类
在内存中是以固定地址存放的,在整个程序运行期间都有效。
变量名的命名方法
- 变量名、数组名、函数名、数组名、函数名…称为标识符。
- 标识符只能由字母、数字、下划线这三种字符组成,且第一个字符必须为字母或下划线,长度不大于247个字符,大小写不通用。
关键字不能作为标识符,关键字即是VC++的语法要求中使用的字, 如int if while 等。
正确的标识符:INT, sum , de12, SUM等。
变量必须使用前定义,以分配空间
命名方式
一般变量都是用匈牙利命名法命名的:
** 匈牙利**命名法是种一编程时的命名规范
基本原则是:变量名=属性+类型+对象描述
3、整型数据
- 整型常量
- 整形量是没有小数点的整数。
- 范围: -2的31次方 ~ 2的31次方 - 1
- 三种形式: (1)十进制 (默认) 例: 43、 1345 、87654
(2)八进制 (以0开头) 例: 053、02501、0253146
(3)十六制 (以0x开头) 例: 0x2B、0x541、0x15666
- 整形变量
- 有符号型:short 在内存中占两字节 范围为 -2的15次方 ~ 2的15次方 - 1
int 在内存中占四字节 范围为 -2的-31次方 ~ 2的31次方 - 1
long 在内存中占四字节 范围为 -2的-31次方 ~ 2的31次方 - 1
- 无符号型:最高位不表示符号位
unsigned short 在内存中占两字节 范围为 0 ~ 2的16次方 - 1
unsigned int 在内存中占四字节 范围为 0 ~ 2的32次方 - 1
unsigned long 在内存中占四字节 范围为 0 ~ 2的32次方 - 1
- 说明
(1)整型常量也有长短之分,常量无unsigned型,但一个非负的整形常量可赋给 unsigned型的变量
(2)若一个常量定义为长整形数,则在其后家l或L进行区分。
如:32L 、 564 l
- 整型数据在内存中的存储方式
一个数在内存中为:
当这个数是有符号数时,为-1;为无符号数时,为2-1
内存中的数以补码的形式存放
例:
#include<iostream.h>
void main()
{
unsigned short a;
short int b = -1;
a=b;
cout<<"a="<<a<<endl;
}
运行结果: a=65535
解析: