1.1 基本数据类型
1.1.1 整型数据
整型数据是用来表示整数的数据类型,C++提供了不同大小的整型数据类型,包括:
int: 表示存储范围较大的整数,通常为4个字节。
short: 表示存储范围较小的整数,通常为2个字节。
long: 表示存储范围较大的整数,通常为4个字节或8个字节。
long long: 表示存储范围更大的整数,通常为8个字节。
以下是一些整型数据的示例代码:
int a = 10; short b = 5; long c = 1000; long long d = 1234567890;
1.1.2 实型数据
实型数据是用来表示浮点数的数据类型,C++提供了不同大小的实型数据类型,包括:
float: 单精度浮点数,通常为4个字节。
double: 双精度浮点数,通常为8个字节。
long double: 扩展精度浮点数,通常为10个字节或16个字节。
以下是一些实型数据的示例代码:
float x = 3.14; double y = 2.71828; long double z = 1.6180339887;
1.1.3 字符型数据
字符型数据用来表示单个字符,C++使用char类型来表示字符,通常为1个字节。
以下是一个字符型数据的示例代码:
char ch = 'A';
1.1.4 bool型数据
bool型数据用来表示真或假的值,C++使用bool类型来表示布尔值,只有两个取值:true和false。
以下是一个bool型数据的示例代码:
bool flag = true;
【例1-1】检测基本数据类型所占的字节数
#include <iostream> using namespace std; int main() { cout << "int: " << sizeof(int) << " bytes" << endl; cout << "short: " << sizeof(short) << " bytes" << endl; cout << "long: " << sizeof(long) << " bytes" << endl; cout << "long long: " << sizeof(long long) << " bytes" << endl; cout << "float: " << sizeof(float) << " bytes" << endl; cout << "double: " << sizeof(double) << " bytes" << endl; cout << "long double: " << sizeof(long double) << " bytes" << endl; cout << "char: " << sizeof(char) << " bytes" << endl; cout << "bool: " << sizeof(bool) << " bytes" << endl; return 0; }
程序运行结果如下
int:4 bytes short:2 bytes long:4 bytes long long: 8 bytes float:4 bytes double: 8 bytes long double: 8 bytes char:1 bytes bool: 1 bytes
1.2 数据存储
1.2.1 标识符
标识符是用来命名变量、函数、类等的名称,C++的标识符由字母、数字和下划线组成,且以字母或下划线开头。
以下是一个标识符的示例代码:
int age = 18;
1.2.2 常量
常量是固定不变的值,可以使用常量来存储不需要修改的数据。
【例1-2】整型常量的表示
int number = 10;
【例1-3】带后缀的整型常量
int decimal = 10; int octal = 012; // 八进制常量,以0开头 int hex = 0x1A; // 十六进制常量,以0x开头
【例1-4】实型常量的表示
float pi = 3.14;
【例1-5】带后缀的实型常量
float radius = 2.5f; // 单精度浮点数常量,以f或F结尾 double height = 1.8; // 双精度浮点数常量,默认为双精度
【例1-6】用转义字符输出字符
char ch = '\n'; // 换行符 cout << ch << endl;
【例1-7】输出字符串
string message = "Hello, world!"; cout << message << endl;
【例1-8】输出bool型常量
bool flag = true; cout << flag << endl;
【例1-9】使用符号常量
const int MAX_NUM = 100; int numbers[MAX_NUM];
1.2.3 变量
变量是用来存储数据的容器,可以通过给变量赋值来存储不同的数据。
【例1-10】变量的初始化与使用
int age = 18; // 初始化变量 cout << "My age is " << age << endl; // 使用变量
1.3 数据处理
1.3.1 算术运算符
【例 1-11】基本算术运算符
#include <iostream> using namespace std; int main() { int a = 10; int b = 5; int sum = a + b; int difference = a - b; int product = a * b; int quotient = a / b; int remainder = a % b; cout << "和: " << sum << endl; cout << "差为: " << difference << endl; cout << "乘积为: " << product << endl; cout << "商值为: " << quotient << endl; cout << "余数为: " << remainder << endl; return 0; }
程序运行结果如下
和:15 差为:5 乘积为:50 商值为:2 余数为:0
【例 1-12】字符参与算术运算
字符类型可以参与算术运算,它们的ASCII码值在计算过程中被使用。下面是一个示例:
#include <iostream> using namespace std; int main() { char a = 'A'; int b = 2; char c = a + b; cout << "c: " << c << endl; return 0; }
程序运行结果如下
c:C
【例 1-13】自增和自减运算符的使用
自增运算符(++)用于增加变量的值,自减运算符(–)用于减少变量的值。下面是一个示例:
#include <iostream> using namespace std; int main() { int a = 5; int b = ++a; int c = --a; cout << "b: " << b << endl; cout << "c: " << c << endl; return 0; }
程序运行结果如下
b: 5 c: 6
【例 1-14】数据类型自动转换
C++中有自动类型转换的规则,当不同类型的表达式混合使用时,编译器会自动进行类型转换。下面是一个示例:
#include <iostream> using namespace std; int main() { int a = 5; double b = 2.5; int sum = a + b; cout << "和为: " << sum << endl; return 0; }
程序运行结果如下
和为: 7
【例 1-15】求三角形的面积
下面是一个求解三角形面积的示例:
#include <iostream> using namespace std; int main() { double base, height; //定义三角形底和高的数据类型 cout << "输入三角形的底: "; cin >> base; cout << "输入三角形的高: "; cin >> height; double area = 0.5 * base * height; //三角形的面积计算公式 cout << "三角形的面积为: " << area << endl; return 0; }
程序运行结果如下
输入三角形的底:6 输入三角形的高:6 三角形的面积为:18
1.3.2 赋值运算符
除了“=”之外,C++还提供了10个复合赋值运算符+=、-=、*=、/=、%=、<<=、>>=、&=、|=和^=。复合赋值运算符是由赋值运算符之前再加一个双目运算符构成的,其中前5个是算术运算
符与赋值运算符复合而成,后5个是位运算符与赋值运算符复合而成。有关位运算的内容在后面
章节介绍。下面举例说明复合赋值运算符的含义。
a+=10 //手价于a=a+10 a-=10*b+20 //手价于a=a-(10*6+20) ag=10*b+20 //等价于a=a% (10*b+20)
其他复合赋值运算符的含义与上面的类似,不再一一赘述。
【例 1-16】复合赋值运算符
#include <iostream> using namespace std; int main() { int a, b, c, d; a = 10; a += 20; //a=a+20;30 cout << a << endl; a -= 5; //a=a-5;25 cout << a << endl; a *= 5 + 5; //a=a*(5+5);250 cout << a << endl; a /= 5 - 3; //a=a/(5-3);125 cout << a << endl; a %= 5 + 3; //a=a%(5+3);5 cout << a << endl; return 0; }
程序运行结果如下
30 25 250 125 5
1.3.3 关系运算符
【例 1-17】求关系表达式的值
关系运算符用于比较两个值,并返回一个布尔值(true或false)。下面是一个示例:
#include <iostream> using namespace std; int main() { int a = 5; int b = 7; bool result = a > b; cout << "result: " << result << endl; return 0; }
程序运行结果如下
result:0
1.3.4 逻辑运算符
【例 1-18】逻辑运算符应用实例
逻辑运算符用于组合多个关系表达式,并返回一个布尔值。下面是一个示例:
#include <iostream> using namespace std; int main() { int a = 5; int b = 7; bool result = (a > 3) && (b < 10); cout << "result: " << result << endl; return 0; }
程序运行结果如下
result:1
1.3.5 条件运算符
【例 1-19】求两个数中较大的值和较小的值
条件运算符(? :)是一个三元运算符,可以根据条件的真假选择不同的操作。下面是一个示例:
#include <iostream> using namespace std; int main() { int a = 5; int b = 7; int max = (a > b) ? a : b; int min = (a < b) ? a : b; cout << "max: " << max << endl; cout << "min: " << min << endl; return 0; }
程序运行结果如下
max:7 min:5
1.3.6 sizeof 运算符
sizeof运算符用于获取变量或数据类型的大小。下面是一个示例:
#include <iostream> using namespace std; int main() { int a; cout << "Size of int: " << sizeof(a) << " bytes" << endl; return 0; }
程序运行结果如下
Size of int: 4 bytes
1.3.7 位运算符
位运算符用于对二进制数进行位操作。下面是一些常用的位运算符:
与运算(&)
或运算(|)
异或运算(^)
左移运算(<<)
右移运算(>>)
这里提供了一些位运算的实例代码:
#include <iostream> using namespace std; int main() { int a = 5; // 二进制表示: 0101 int b = 3; // 二进制表示: 0011 cout << "a & b: " << (a & b) << endl; // 与运算: 0001 cout << "a | b: " << (a | b) << endl; // 或运算: 0111 cout << "a ^ b: " << (a ^ b) << endl; // 异或运算: 0110 cout << "a << 1: " << (a << 1) << endl; // 左移运算: 1010 cout << "b >> 1: " << (b >> 1) << endl; // 右移运算: 0001 return 0; }
程序运行结果如下
a & b: 1 a | b: 7 a ^ b: 6 a << 1: 10 b >> 1: 1
1.4 综合实例
【例 1-20】输出一个三位数的个位数、十位数和百位数
下面是一个输出三位数个位数、十位数和百位数的示例:
#include <iostream> using namespace std; int main() { int num; cout << "输入一个三位数: "; cin >> num; int ones = num % 10; int tens = (num / 10) % 10; int hundreds = num / 100; cout << "个位数为: " << ones << endl; cout << "十位数为: " << tens << endl; cout << "百位数为: " << hundreds << endl; return 0; }
程序运行结果如下
输入三位数:185 个位数为:1 十位数为:8 个位数为:5