数据类型
C++规定在创建变量或常量时,必须要指出相应的数据类型,否则无法给变量分配内存空间,因此称C++是一个强类型语言。
1. 整型
作用:整形变量表示的是整数类型的数据。
C++中有如下几种类型:
数据类型 | 占用空间 | 取值范围 |
---|---|---|
short | 2字节 | (-2^15 ~ 2^15 - 1) |
int | 4字节 | (-2^31 ~ 2^31-1) |
long | Windows为4字节,Linux为4字节(32位),8字节(64位) | (-2^31 ~ 2^31 - 1) |
long long | 8字节 | (-2^63 ~ 2^63 - 1) |
示例:
// 1. 短整型 (3万的数量级,-32768 ~ 32767)
short a = 10;
// 2. 整性 (20亿的数量级,-2147483648 ~ 2147483647)
int b = 20;
// 3. 长整型 (数量级为9*10^19)
long c = 30;
long long d = 40
2. sizeof关键字
作用:用于求出数据类型所占用的内存空间
示例:
short a = 10;
cout << "sizeof(a)" << sizeof(a) << endl
int b = 20;
cout << "sizeof(b)" << sizeof(b) << endl
long c = 30;
cout << "sizeof(c)" << sizeof(c) << endl
long long d = 40;
cout << "sizeof(d)" << sizeof(d) << endl
运行结果:
sizeof(a) = 2
sizeof(b) = 4
sizeof(c) = 8
sizeof(d) = 8
3. 实型
作用:用于表示实数类型
种类:单精度浮点数float
、双精度浮点数double
类型 | 占用空间 | 精度 |
---|---|---|
float | 4个字节 | 7位有效数字 |
double | 8个字节 | 15~16位有效数字 |
示例:a
// 加f的原因是小数字面值默认为double类型
// 在赋给float类型的变量前会先转化为float类型的变量
// 加上f后小数的字面值变为float类型,节省类型转换这一步骤
float f1 = 3.14f;
double f2 = 3.14
// 科学计数法表示
float f3 = 3e-2;
cout << "f1 = " << f1 << endl;
cout << "f2 = " << f2 << endl;
cout << "f3 = " << f3 << endl;
运行结果:
f1 = 3.14
f2 = 3.14
f3 = 0.03
4. 字符类型
作用:用于表示单个字符
语法:char ch = 'a';
// 1. 定义字符变量的方法
char ch = 'a';
// 2. 字符变量所占内存大小
cout << sizeof(char) << endl;
// 3. 区分字符串和字符的定义
// 字符变量类型为char,用单引号包括起来
// 字符串的类型为char[],用双引号包括起来
char ch = 'a';
char str[10] = "abc"
// 4. 字符按某种编码以二进制值存储在内存中,如ASCII码、Unicode码
// 如a的码值为97
cout << (int)ch << endl;
5. 转义字符
作用:用于表示一些不能显示出来的ASCII字符
常用的有:\n
, \t
, \\
// 1. 换行符
cout << "hello, world\n";
// 2. 反斜杠
cout << "this is \\" << endl;
// 3. 水平制表符(tab)
cout << "this \t is a tab." << endl;
6. 字符串
作用:用于表示一串字符
两种风格:
- C风格字符串:
char 变量名[] = "字符串字面量"
- C++风格的字符串:
string 变量名 = "字符串字面量"
示例:
// 1. C风格的字符串
// C风格的字符串的末尾会添加一个'\0'
// 如字符串"hello"的组成元素为'h','e','l','l','o','\0'
char string1[] = "hello";
// 2. C++风格的字符串
// 使用string类型前需要包含头文件#include<string>
string string2 = "hello";
- 布尔类型bool
作用:布尔类型代表真和假
布尔类型有两个值(占一个字节大小):
- true:表示真(本质是1)
- false:表示假(本质是0)
示例:
bool flag = true;
cout << flag << endl;
flag = false;
cout << flag << endl;
cout << sizeof(flag) << endl;
8. 数据的输入
作用:从键盘获取数据
关键字:cin
语法:cin >> 变量名
示例:
#include <iostream>
#include <string>
using namespace std;
// 整型输入
int a = 0;
cout << "请输入一个整数" << endl;
cin >> a;
cout << a endl;
// 浮点数输入
float f = 3.14f;
cout << "请输入一个浮点数" << endl;
cin >> f;
cout << f << endl;
// 字符型输入
char ch = 'a'
cout << "请输入一个字符" << endl;
cin >> ch;
cout << ch << endl;
// 字符串输入
string str = "hello";
cout << "请给字符串str赋值" << endl;
cin >> str;
cout << str << endl;
// 布尔类型的输入
// 显然,只有0值转化为布尔类型后为0
// 否则,其他任意值都会转化为1
bool flag = false;
cout << "输入一个布尔类型" << endl;
cin >> flag;
cout << flag < endl;