- gf24240 的博客
《梦溪笔谈·C++》卷三十七:A1课程总结
- 2025-9-13 23:28:00 @
前言
反正闲着也是闲着。
C++ 程序框架
C++ 的程序有这几个必要的组成部分:
- 头文件:引入要使用的函数。
- 命名空间(可选):这个可选其实是可以选命名空间(因为你也可以定义命名空间)。
如果不声明命名空间,就需要在命名空间内的函数前加上命名空间的名字和
::
。 - 主函数:程序开始的地方。
例如:
#include <iostream> // 引入<输入输出流>头文件
using namespace std; // 使用标准命名空间
int main() // 主函数
{
return 0; // 程序正常结束
}
输入输出
C++ 使用“流”的方式进行输入输出。(虽然正确,但是不知道有什么用)
输入
C++ 的标准输入是 cout
。 cout
可以输出字符串、数字、变量等。
这是 cout
的格式:
cout << 项目1 << 项目2 << ... << 项目n ;
其中,项目可以是字符串、数字或变量。
例如:
#include <iostream> // 引入<输入输出流>头文件
using namespace std; // 使用标准命名空间
int main() // 主函数
{
cout << "hello world!"; // 输出 "hello world!"
return 0; // 程序正常结束
}
变量和输入
变量就像一个盒子(几乎所有编程教育机构都这样比喻),里面可以装东西。例如字符串、数字。
下面是 C++ 定义变量的格式:
变量类型 变量名;
下面是变量类型的表格:
简单类型:
粗略的类型 | 细致的类型 | 描述 |
---|---|---|
整型 | short |
比较短的整数, ~ |
int |
常用的整型, ~ | |
long long |
较长的整型, ~ | |
浮点型 | float |
较短 |
double |
常用 | |
long double |
极不常用 | |
布偶型 | bool |
存储布偶值 |
字符型 | char |
存储字符(本质是 ASCII 码) |
比较 diff 的类型:
粗略的类型 | 细致的类型 | 描述 |
---|---|---|
常量 | const |
常量,不可改 |
#define |
其实是宏定义,仅替换文本 | |
指针 | * |
指向变量 |
引用 | & |
起别名 |
捆绑 | 结构体 struct |
捆绑多个内存空间,存储多个变量 |
联合体 union |
多个变量共用一个空间 | |
数组 | [] |
多个连续变量 |
程序中的变量名、常量名、函数名、类名等都叫做标识符。
C++ 标识符的命名规则:
- 标识符不能和关键字重名。
- 标识符只能由字母、数字及下划线组成,且不能由数字开头。
- 标识符必须先定义,后使用。
- 同一作用域内标识符不能重复。
- 区分大小写。
- 尽量做到见名知义。
在程序中,每一个变量都会占一段内存,这些内存都有对应的地址。
C++ 的标准输入是 cin
。 cin
可以输入变量。
这是 cin
的格式:
cin >> 项目1 >> 项目2 >> ... >> 项目n ;
例如:
#include <iostream> // 引入<输入输出流>头文件
using namespace std; // 使用标准命名空间
int main() // 主函数
{
int a; // 定义整型变量 a
cin >> a; // 输入 a
cout << a; // 输出 a
return 0; // 程序正常结束
}
内存空间
bit(位) 是计算机内信息的最小单位 , Byte(B,字节) 是信息的 基本单位 。
$1 \text{B} = 8 \text{bit} \\ 1 \text{KB} = 1024(\texttt{即}2^{10})\text{B} \\ ...$
在 KB 之后,还有 MB 、 GB 、 TB 、 PB 、 EB 、 ZB 、 YB 、 BB(???) 。
记忆方法: BKMGTPEZYB (报考美国 TPE 专业版)
一个 int
类变量占 4 字节。
表达式
表达式分为算术表达式、逻辑表达式、条件表达式等。
算术表达式
字面意思,就是你平时用的式子。这是一些基本的算数符号:+
(加号)、-
(减号)、*
(乘号)、/
(除号)。
再和数字组合,组成的就是算术表达式。
逻辑表达式
字面意思,就是逻辑运算。值只有 真(非 0)和假(0) 。这是一些基本的逻辑运算符:
&&
:与运算||
:或运算!
:非运算==
:相等>=
:大于等于>
:大于<=
:小于等于<
:小于!=
:不等于
和一些表达式结合就组合成了逻辑表达式。
条件表达式
这个放在 if
语句讲。
程序基本结构
程序的基本结构分为:
- 顺序结构:逐行执行代码。
- 选择结构:或条件结构。如果……就……。
- 循环结构:循环一段结构。
这些结构互相嵌套,就组成了程序。
顺序结构
例如:
#include <iostream> // 引入<输入输出流>头文件
using namespace std; // 使用标准命名空间
int main() // 主函数
{
int a; // 定义整型变量 a
cin >> a; // 输入 a
cout << a; // 输出 a
return 0; // 程序正常结束
}
选择结构
选择结构就是如果……就……否则……。有 3 种方法:
if
语句。
格式是这样的:
if (逻辑表达式)
{
}
else
{
}
如果表达式成立,则执行 if
下方的代码,否则执行 else
下方的代码。
例如:
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
if (a > 10)
{
cout << "a 大于 10";
}
else
{
cout << "a 小于等于 10";
}
return 0;
}
switch
语句。
switch
语句的格式:
switch (量)
{
case 值1: 语句1;break;
case 值2: 语句2;break;
case 值3: 语句3;break;
...
default: 语句n;
}
和 if
不同, switch
是用 量 逐一匹配 case
里的值。如果相等则执行。
例如:
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
switch (a)
{
case (10) : cout << "a = 10"; break;
case (5) : cout << "a = 5"; break;
default : cout << "a != 10 && a != 5";
}
return 0;
}
- 条件表达式
类似于 if
语句。但是条件表达式多用于选择不同的值而不是执行不同的代码。格式:
(逻辑表达式 ? 值1 : 值2)
例如:
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
cout << (a > 10 ? "a 大于 10" : "a 小于等于 10");
return 0;
}
循环结构
for
循环。
格式:
for (循环前; 判断条件; 循环体后)
{
循环体;
}
一个常用的格式:
for (int i = 1; i <= n; ++i)
{
}
功能:执行 n
次。
while
循环
其实和 for
循环非常像。格式:
while (条件)
{
}
如果条件成立则执行。要是把 for
循环改成 while
循环就是这样:
循环前;
while (判断条件)
{
循环体;
循环体后;
}
do-while
循环
非常反人类。
do
{
循环体;
}while (判断条件);
判断条件在后面,也就是说,必须执行一次循环体。
-
递归循环
这个等你学到了再说。