存储信息需要记录3个基本属性:
- 数据类型
- 具体值
-
3.1.1 变量名
C++命名规则:
只能使用字母、数字、下划线;
- 第一个不能是数字;
- 区分大小写;
- 不能与关键字重名;
- 下划线开头和大写字母打头的被保留给编译器实现;
-
3.1.2 整型
C++基本整型:char、short、int、long,C++11新增 long long,每种都有符号版本和无符号版本。长度要求:
short:至少16位;
- int:大于等于short;
- long:至少32位且大于等于int;
- long long:至少64位且大于等于long;
可以使用 sizeof 运算符返回类型或变量长度,头文件 climits(旧的为 limits.h)包含了整型限制信息。
3.1.3 整型 short、int、long、long long
以下代码展示了如何使用这些工具:
#include <iostream>
#include <climits>
using namespace std;
int main()
{
//赋值
int n_int = INT_MAX;
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
long long n_llong = LLONG_MAX;
//输出长度
cout << "int is " << sizeof(n_int) << " bytes." << endl;
cout << "short is " << sizeof(n_short) << " bytes." << endl;
cout << "long is " << sizeof(n_long) << " bytes." << endl;
cout << "long long is " << sizeof(n_llong) << " bytes." << endl;
//输出最大值
cout << "Max int is " << n_int << endl;
cout << "Max short is " << n_short << endl;
cout << "Max long is " << n_long << endl;
cout << "Max long long is " << n_llong << endl;
//输出一个字节占的位数
cout << "Bits per byts = " << CHAR_BIT << endl;
}
注意:如果系统不支持 long long,应该删除该类型的代码。
C/C++的初始化风格不同:
int num = 101; //C风格
int num(101); //C++风格
C++11 新增另一种初始化方式,用于数组和结构:
int num{};
int num = {10};
int num = {}; //这种情况将被初始化为零
3.1.4 无符号类型
例如,short 范围是 -32768~32767,无符号版本范围是 0~65535。仅当值非负时才使用无符号类型。
3.1.5 选择整型类型
C++提供了很多整型,选择哪个呢?通常 int 被设置为计算机最为“自然”的长度,处理效率最高。如果内存紧张选择 short,如果非负选择无符号版本。
3.1.6 整型字面值
整型字面值(常量)是显式地书写的常量。C++能够以三种计数方式书写整数:
- 十进制:第一位是1~9,如28;
- 八进制:第一位是0,如028;
- 十六进制:0x或0X开头,如0x28;
使用 count 输出这三种格式的显示值:(dec、hex、oct)
#include <iostream>
using namespace std;
int main()
{
int num = 42;
cout << "十进制 " << num << endl;
cout << hex;
cout << "十六进制 " << num << endl;
cout << oct;
cout << "八进制 " << num << endl;
}
3.1.7 C++如何确定常量类型?
例如:
cout << 1492 << endl;
程序将 1492 存储为 int、long 还是其他?默认为 int。
数字常量后面可以加后缀来表示类型: