【26小】第3次课——认识字符型
已結束
IOI
開始於: 2026-10-28 18:15
200
小時
主持人:
23
字符型
1. 一句话结论
char 装单个字符,用单引号。
2. 语法形式
char c1 = 'A'; // ✅ 单引号,1 个字符
char c2 = '9'; // ✅ 数字字符(不是数字 9)
char c3 = ' '; // ✅ 空格也是字符
// char c4 = 'AB'; // ❌ 不能装两个
// char c5 = "A"; // ❌ 双引号是字符串
常用 ASCII 编号:'0'→48 … '9'→57;'A'→65 … 'Z'→90;'a'→97 … 'z'→122。
3. ASCII 码
字符在计算机里用按编号(ASCII 码)存储。
4. 最小可运行示例
#include <iostream>
using namespace std;
int main() {
char c = 'A';
cout << "char : " << c << endl;
cout << "code : " << (int)c << endl; // 看它的编号
cout << "next : " << (char)(c + 1) << endl;
return 0;
}
预期输出:
char : A
code : 65
next : B
解释:
cout遇到char类型的变量,显示的是字符A;(int)c把字符转成整数,显示它的编号65;c + 1得66(此时是 int 类型),再用(char)转回字符就是'B'。
5. 字符的运算
字符运算都是使用ASCII进行,结果都是整型。
-
字符跟字符进行运算
cout << '0' + '1'; // 97 -
字符跟整数进行运算
cout << 'a' + 1; // 98 cout << char('a' + 1); // b
大写转小写 + 32,小写转大写 - 32。
数据类型转换
1. 一句话结论
不同类型混着算时,C++ 会自动把小类型临时变成大类型(隐式转换);
也能用手动转换(显式转换)。
2. 语法形式
隐式转换(电脑自动做):
double b = 5; // int → double,5 变 5.0(安全)
int c = 3.9; // double → int,变 3(⚠️ 小数被丢)
double d = 7 / 2; // ⚠️ 先算 7/2=3,再把 3 变 3.0
double e = 7.0 / 2; // ✅ 2 先变 2.0,得 3.5
运算规律:两个不同类型一起算,结果取"更大"的那个。
int + double → double;
int + int → int;
char + int → int。
显式转换(手动指定,推荐这种):
static_cast<目标类型>(值)
int y = static_cast<int>(3.9); // 3(截断,不是四舍五入)
int n = static_cast<int>('B'); // 66
char ch = static_cast<char>(66); // 'B'
double p = static_cast<double>(7) / 2; // 3.5 ✅
3. 最小可运行示例
#include <iostream>
using namespace std;
int main() {
int a = 7, b = 2;
cout << "a / b = " << a / b << endl;
cout << "cast first = " << static_cast<double>(a) / b << endl;
cout << "int(3.9) = " << static_cast<int>(3.9) << endl;
return 0;
}
预期输出:
a / b = 3
cast first = 3.5
int(3.9) = 3
解释:
- 第 1 行两个 int 做整数除法得 3;
- 第 2 行先把 a 变成 7.0(b 也自动变 2.0)得 3.5;
- 第 3 行直接丢掉小数得 3,不是四舍五入成 4。
- 狀態
- 已結束
- 規則
- IOI
- 題目
- 14
- 開始於
- 2026-10-28 18:15
- 結束於
- 2026-11-6 2:15
- 持續時間
- 200 小時
- 主持人
- 參賽人數
- 23