日期

2024年12月07日 C++课程

编程框架

  1. 包含头文件(拿到一些工具)
  2. 使用命名空间 std
  3. 主函数
  4. 大括号
  5. return 0 表示程序正常结束
#include <iostream> // cin cout
#include <cstdio> // scanf printf
using namespace std; //使用命名空间

int main() {

  return 0; // 程序正常退出
}

数据类型

关键字 -- 英文名

数字类型

浮点数:带小数点

  1. 双精度(单精度)浮点数 -- double(float)

整数:不带小数点

  1. 标准整数 -- int
  2. 长整数 -- long long
  3. 区别 int109,longlong1018int \sim 10^9,long long \sim 10^{18}

布尔类型

bool,值有 true 和 false。 也可以用 1 和 0 表示 true 和 false。

字符类型

字符 -- char -- ''

字符串 -- string -- ""

注意:空字符串也是字符串,空集也是集合的一种。

变量

一个东西变成另一个东西。(x)

一个“盒子”,里面可以装不同的东西(√)

"盒子"的特点:只能装特定的东西,并且有名字。


更正式地来说,定义一个变量的框架如下:

// 数据类型 变量名字;
int a;
double x, y; // 同种类型变量一次可以定义多个

对于不同的类型,要分两次定义(不表示写两行)

int a; double x,y;

上面所有的变量,内部的值都未知。

初始化一个变量:定义一个变量的同时,赋值。 使用的框架如下:

int a = 10;
double x = 1.0, y = 2.4;

类型转换

直观区别:一个看得到,一个看不到。

显式类型转换

使用框架:数据类型(要转换的变量)

int a = 10, b = 5;
double x = b / a; // 0
double y = double(b) / a; // 0.2

隐式类型转换

通常出现:表达式里有不同类型的变量。

类型转换的方向:低精度向高精度转换

char >> long long/int >> double

int x = 10;
double y = 5;
double div = y / x; // 0.2

顺序结构

代码按照自顶向下逐行运行。

#include <iostream> 

using namespace std; 

int main() {
  cout <<"     /    !!!      /\n";
  cout <<"@@@@@@@@@@@@@@@@@@@@@@\n";
  cout <<"@@@@@@@@@@@@@@@@@@@@@@\n";
  cout <<"@@@@@@@@@@@@@@@@@@@@@@\n";
  cout <<"@@@@@@@@@@@@@@@@@@@@@@\n";
  cout <<"@@@@@@@@@@@@@@@@@@@@@@\n";
  cout <<"@@@@@@@@@@@@@@@@@@@@@@\n";
  return 0; 
}

分支结构

通过一定的条件选择不同的代码块执行。

使用框架:

if (条件语句) {
  //代码内容
}

if (条件语句) {
  /// 1
} else {
  /// 2
}

if (条件1) {
  
} else if (条件2) {
  
} else if(条件3) {
}

例子:

int x = 10;
if (x > 0) {
  cout << "YES";
} else {
  cout << "NO";
}
if () {
  if () {
  }
}