目录
C++能够处理的基本数据类型
l 整数类型;
l 浮点数类型;
l 字符类型;
l 布尔类型。
程序中的数据
l 常量
n 在源程序中直接写明的数据;
n 其值在整个程序运行期间不可改变。
l 变量
n 在程序运行过程中允许改变的数据。
整数类型
l 基本的整数类型:
int
l 按符号分
n 符号的
signed
n 无符号的
unsigned
l 按照数据范围分
n 短整数
short
n 长整数
long
n 长长整数
long long
l ISO C++标准并没有明确规定每种数据类型的字节数和取值范围,它只是规定它们之间的字节数大小顺序满足:
(signed/unsigned)signed char ≤(unsigned) short int ≤(unsigned) int ≤(unsigned) long int ≤ long long int
字符类型
char
l 容纳单个字符的编码;
l 实质上存储的也是整数。
浮点数类型
l 单精度
float
l 双精度
double
l 扩展精度
long double
字符串类型(详见第6章)
l 有字符串常量
l 基本类型中没有字符串变量
l 采用字符数组存储字符串(C风格的字符串)
l 标准C++类库中的String类(C++风格的字符串)
布尔类型
bool
l 只有两个值:
true(真) 、false(假)
l 常用来表示关系比较、相等比较或逻辑运算的结果
各基本类型的取值范围
常量
l 在程序运行的整个过程中其值始终不可改变的量;
l 直接使用符号(文字)表示的值;
l 例如:12,3.5,'A'都是常量。
整数常量
l 以文字形式出现的整数;
l 十进制
n 若干个0~9的数字,但数字部分不能以0开头,正数前边的正号可以省略。
l 八进制
n 前导0+若干个0~7的数字。
l 十六进制
n 前导0x+若干个0~9的数字及A~F的字母(大小写均可)。
l 后缀
n 后缀L(或l)表示类型至少是long,后缀LL(或ll)表示类型是long long,后缀U(或u)表示unsigned类型。
浮点数常量
l 以文字形式出现的实数;
l 一般形式:
n 例如,12.5,-12.5等。
l 指数形式:
n 例如,0.345E+2,-34.4E-3;
n 整数部分和小数部分可以省略其一。
l 浮点常量默认为double型,如果后缀F(或f)可以使其成为float型,例如:12.3f。
字符常量
l 单引号括起来的一个字符,如:'a'、'D'、'?'、'$';
l C++转义字符列表(用于在程序中表示不可显示字符)
C风格字符串常量
例:
通过添加前缀可以改变字符常量或者字符串常量的类型,前缀及其含义如下表所示:
变量:在程序的运行过程中,其值可变的量
l 变量定义
n 数据类型 变量名1, 变量名2, ..., 变量名n;
l 初始化
n C++语言中提供了多种初始化方式;
n 例如:
int a = 0;
int a(0);
int a = {0};
int a{0};
其中使用大括号的初始化方式称为列表初始化,列表初始化时不允许信息的丢失。例如用double值初始化int变量,就会造成数据丢失。
符号常量
l 常量定义语句的形式为:
n
const
数据类型说明符 常量名=常量值;
或:
n 数据类型说明符 const 常量名=常量值;
l 例如,可以定义一个代表圆周率的符号常量:
n
const float PI = 3.1415926;
l 符号常量在定义时一定要初始化,在程序中间不能改变其值。
程序举例
题目:读入并显示整数
l 主要知识点:
n 常量
u 在源程序中直接写明的数据,其值在整个程序运行期间不可改变,这样的数据称为常量。
n 变量
u 在运行过程中从计算机的外部设备(例如键盘、硬盘)读取的,这些数据的值在程序运行过程中允许改变,这样的数据称为变量
n 从键盘输入数据
u iostream类的对象cin的>>操作,可以从标准输入设备(通常是键盘)读入数据
n 数据的存储
u 为了存储数据,需要预先为这些数据分配内存空间。
u 变量的定义就是在给变量命名的时候分配内存空间。
l 源代码
#include <iostream>
using namespace std;
int main()
{
int radius;
cout<<"Please enter the radius!\n";
cin>>radius;
cout<<“The radius is:”<<radius<<‘\n’;
cout<<“PI is:”<<3.14<<‘\n’;
cout<<"Please enter a different radius!\n";
cin>>radius;
cout<<"Now the radius is changed to:"
<<radius<<‘\n’;
return 0;
}
题目:为常量命名
l 主要知识点:符号常量
l 源代码
#include <iostream>
using namespace std;
int main()
{
const double pi(3.14159);
int radius;
cout << "Please enter the radius!\n";
cin >> radius;
cout << "The radius is:" << radius << '\n';
cout << "PI is:" << pi << '\n';
cout << "Please enter a different radius!\n";
cin >> radius;
cout << "Now the radius is changed to:" << radius << '\n';
cout << "PI is still:" << pi << '\n';
//cin>>pi;
return 0;
}
l 运行结果:
Please enter the radius!
2
The radius is:2
PI is:3.14159
Please enter a different radius!
3
Now the radius is changed to:3
PI is still:3.14159
题目:变量的初始化
l 主要知识点:变量的初始化
n 虽然变量的值是可以在运行时获得的,但是在定义变量时也可以进行初始化,而且应该提倡进行初始化;
n 未经初始化的变量,其值可能是随机的。如果误用了未经初始化也没有给予确定值的变量,就会引起错误。
l 源代码
#include <iostream>
using namespace std;
int main()
{
const double pi(3.14159);
int radius(0);
cout << "The initial radius is:" << radius << '\n';
cout << "PI is:" << pi << "\n";
cout << "Please enter a different radius!\n";
cin >> radius;
cout << "Now the radius is changed to:" << radius << '\n';
cout << "PI is still :" << pi << '\n';
return 0;
}