1.3变量和数据类型初探
什么事变量
- 变量 就是一个代号,程序运行时系统会自动为变量分配内存空间,于是变量就代表了系统分配的那片内存空间,对变量的访问,就是对其代表的内存空间的访问。
- 变量有名字和**类型两种属性,不同变量的名字就对应了内存中的不同地址(即不同位置),而变量的类型,决定了一个变量占用多少个字节。
- 如果用酒店做譬喻,则变量名相当于房间号,类型相当于户型。
- 在C++语言中,变量要先定义,然后才能使用。“使用”有时也称为“引用”。读取或修改一个变量的值,都叫使用这个变量。定义变量的语句,要出现在所有使用该变量的语句之前。
变量的定义
变量名 变量名1, 变量名2,……, 变量名n;
int number, price; // 定义整型变量 number 和 price
变量的命名规则
- 变量由大小写字母、数字和下划线构成,中间不能有空格,长度不限,不能以数字开头。
- 合法变量名示例:name _doorNum x1 y z a2 A number_of_students PrintValue MYTYPE
- 变量名是大小写相关的。Name和name是两个不同的变量。
C++的保留字
auto break case char
const continue default do
double else enum extern
float for goto if
int long register return
short signed sizeof static
struct switch typedef union
unsigned void volatile while
bool catch class const_cast
delete dynamic_cast explicit false
friend inline namespace new
operator private protected public
reinterpret_cast static_cast template
this throw true try
typeid typename using virtual
C++的数据类型
数据类型可以说明一个变量表示什么样的数据(整数、实数、还是字符等)。不同数据类型的变量,占用的存储空间大小不同。 除了基本数据类型外,C++还允许程序员自定义数据类型。
C++的基本数据类型
- int, long, short, char的最高位(最左边)是符号位,为1则表示负数,为0则表示非负数。
- 一个字节等于8个比特,即8个二进制位。
类型名 | 含义 | 字节数 | 取值范围 |
---|---|---|---|
int | 整型,表示整数 | 4 | -2<sub>31</sub> ~ 2<sub>31</sub>-1 |
long | 长整型,表示整数 | 4 | -2<sub>31</sub> ~ 2<sub>31</sub>-1 |
short | 短整型,表示整数 | 2 | -2<sub>15</sub> ~ 2<sub>15</sub>-1 |
unsigned int | 无符号整型,表示非负整数 | 4 | 0 ~ 2<sub>32</sub>-1 |
unsigned long | 无符号长整型,表示非负整数 | 4 | 0 ~ 2<sub>32</sub>-1 |
unsigned short | 无符号短整型,表示非负整数 | 2 | 0 ~ 2<sub>16</sub>-1 |
long long | 64位整型,表示整数 | 8 | -2<sub>63</sub> ~ 2<sub>63</sub>-1 |
unsigned long long | 无符号64位整型,表示非负整数 | 8 | 0 ~ 2<sub>64</sub>-1 |
float | 单精度实数型,表示实数 | 4 | 3.4 x 10<sub>-38</sub> ~ 3.4 x 10<sub>38</sub> |
double | 双精度实数型,表示实数 | 8 | 1.7 x 10<sub>-308</sub> ~ 1.7 x 10<sub>308</sub> |
char | 字符型,表示字符 | 1 | -128 ~ 127 |
unsigned char | 无符号字符型 | 1 | 0 ~ 255 |
bool | 布尔类型,表示真假 | 一般是1 | true或false |
用sizeof运算符求变量占用字节数
sizeof(变量名) sizeof(类型名) 能够得到某个变量或某一类型占用的字节数
#include <cstdio>
#include <iostream>
int main()
{
int n1 = 10;
doube f;
char c;
printf("%d, %d, %d, %d", sizeof(n1), sizeof(short), sizeof(double), sizeof(c));
// output: 4, 2, 8, 1
}
变量的初始化
- 变量在定义的时候,可以给 它指定一个初始值,这叫变量的初始化。
- 没有初始化的变量,其值一般是不确定的。 int a =4, b = 3, c; char ch = 'a';