前言

反正闲着也是闲着。


C++ 程序框架

C++ 的程序有这几个必要的组成部分:

  1. 头文件:引入要使用的函数。
  2. 命名空间(可选):这个可选其实是可以选命名空间(因为你也可以定义命名空间)。

    如果不声明命名空间,就需要在命名空间内的函数前加上命名空间的名字和 ::

  3. 主函数:程序开始的地方。

例如:

#include <iostream> // 引入<输入输出流>头文件 
using namespace std; // 使用标准命名空间 
int main() // 主函数 
{
	
	return 0; // 程序正常结束 
}

输入输出

C++ 使用“流”的方式进行输入输出。(虽然正确,但是不知道有什么用)

输入

C++ 的标准输入是 coutcout 可以输出字符串、数字、变量等。

这是 cout 的格式:

cout << 项目1 << 项目2 <<  ... << 项目n ;

其中,项目可以是字符串、数字或变量。

例如:

#include <iostream> // 引入<输入输出流>头文件 
using namespace std; // 使用标准命名空间 
int main() // 主函数 
{
	cout << "hello world!"; // 输出 "hello world!" 
	return 0; // 程序正常结束 
}

变量和输入

变量就像一个盒子(几乎所有编程教育机构都这样比喻),里面可以装东西。例如字符串、数字。

下面是 C++ 定义变量的格式:

变量类型 变量名;

下面是变量类型的表格:

简单类型:

粗略的类型 细致的类型 描述
整型 short 比较短的整数, 215-2^{15} ~ 21512^{15}-1
int 常用的整型,231-2^31 ~ 23112^{31}-1
long long 较长的整型,263-2^{63} ~ 26312^{63}-1
浮点型 float 较短
double 常用
long double 极不常用
布偶型 bool 存储布偶值
字符型 char 存储字符(本质是 ASCII 码)

比较 diff 的类型:

粗略的类型 细致的类型 描述
常量 const 常量,不可改
#define 其实是宏定义,仅替换文本
指针 * 指向变量
引用 & 起别名
捆绑 结构体 struct 捆绑多个内存空间,存储多个变量
联合体 union 多个变量共用一个空间
数组 [] 多个连续变量

程序中的变量名、常量名、函数名、类名等都叫做标识符

C++ 标识符的命名规则:

  1. 标识符不能和关键字重名。
  2. 标识符只能由字母、数字及下划线组成,且不能由数字开头
  3. 标识符必须先定义,后使用
  4. 同一作用域内标识符不能重复。
  5. 区分大小写
  6. 尽量做到见名知义

在程序中,每一个变量都会占一段内存,这些内存都有对应的地址。

C++ 的标准输入是 cincin 可以输入变量。

这是 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) 。这是一些基本的逻辑运算符:

  1. && :与运算
  2. || :或运算
  3. ! :非运算
  4. == :相等
  5. >= :大于等于
  6. > :大于
  7. <= :小于等于
  8. < :小于
  9. != :不等于

和一些表达式结合就组合成了逻辑表达式。

条件表达式

这个放在 if 语句讲。

程序基本结构

程序的基本结构分为:

  1. 顺序结构:逐行执行代码。
  2. 选择结构:或条件结构。如果……就……
  3. 循环结构:循环一段结构。

这些结构互相嵌套,就组成了程序。

顺序结构

例如:

#include <iostream> // 引入<输入输出流>头文件 
using namespace std; // 使用标准命名空间 
int main() // 主函数 
{
	int a; // 定义整型变量 a
	cin >> a; // 输入 a
	cout << a; // 输出 a 
	return 0; // 程序正常结束 
} 

选择结构

选择结构就是如果……就……否则……。有 3 种方法:

  1. 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;
} 
  1. 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;
} 
  1. 条件表达式

类似于 if 语句。但是条件表达式多用于选择不同的值而不是执行不同的代码。格式:

(逻辑表达式 ? 值1 : 值2)

例如:

#include <iostream>
using namespace std;
int main()
{
	int a;
	cin >> a;
	cout << (a > 10 ? "a 大于 10" : "a 小于等于 10");
	return 0;
} 

循环结构

  1. for 循环。

格式:

for (循环前; 判断条件; 循环体后)
{
	循环体; 
}

一个常用的格式:

for (int i = 1; i <= n; ++i)
{
	
}

功能:执行 n 次。

  1. while 循环

其实和 for 循环非常像。格式:

while (条件)
{
	
}

如果条件成立则执行。要是把 for 循环改成 while 循环就是这样:

循环前; 
while (判断条件)
{
	循环体; 
	循环体后; 
}
  1. do-while 循环

非常反人类。

do 
{
	循环体; 
}while (判断条件);

判断条件在后面,也就是说,必须执行一次循环体

  1. 递归循环

    这个等你学到了再说。