https://avatars.githubusercontent.com/u/103393591

C++数组

前言

这部分类同于Python,比如从0开始,都用[]来表示第几个元素。

一维数组(score)

形式如下

1
<类型标识符><数组名>[数组长度]

实例

1
2
3
4
5
6
int score[10];

int const N = 10;
int n,m;
int a[N];           //合法,N为常量
double[n],c[m*2];   //非法,n和m是变量

如果要访问一维数组的元素,形式如下:

C++函数

定义函数

1
2
3
4
<类型标识符><函数名>(形式参数表)
{
    语句序列
}

实例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
//求n!

#include<iostream>
using namespace std;
int factorial(int m);    //原型声明
int main()
{
    int n;
    cout<<"Input n:";
    cin>>n;
    cout<<n<<"!="<<"factorial(n)"<<endl;     //函数调用作为表达式出现在语句中
    return 0;
}

int factorial(int m)
{
    int i,result=1;
    for(i=1;i<=m;i++)
        result *=i;
    return result;
}

函数返回值及其类型

函数头部的类型标识符规定函数返回值的类型,函数的返回值是返回给主调用函数的处理结果,由函数体中的return语句带回。

C++循环结构补充

输入信息控制循环

输入信息控制循环通常控制的是无限循环(循环次数不确定的循环)。

通常使用while(或do while)语句构建无限循环。

统计输入的字符个数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include<iostream>
using namespace std;
int main()
{
    char ch;
    int count=0;
    cout<<"输入字符串,以#结束:";
    while(true)
    {
        cin>>ch;
        if(ch=='#') break;
        cout++;
    }
    cout<<"共输入"<<count<<"个字母。"<<endl<<endl;
    return 0;
}

循环嵌套

输出乘法九九表:
二维表,先从上到下输出行,再从左到右输出列。
需要构建两个循环,外循环控制行,内循环控制列。

C++程序控制结构

选择控制语句 if else

这里不像Python,每个分支语句后不需要加:,直接加 (Tab)后写分支语句,条件判断需要小加括号括起来,Python中是空格加条件,这点也不同。

C++简单程序

赋值表达式

常规类似python,同样有赋值运算的简写形式,如

1
2
3
b += 2          //b = b + 2
x *= y + 3      //x = x*(y+3)
x += x -= x*x   //x = x + (x = x - x*x) 

逗号表达式

在C++中,逗号也是一个运算符,使用形式为

<表达式1>,<表达式2>,……,<表达式n>

C++入门

如果有Python的基础,学习c++会感觉很别扭2333
如果是用VS写c++程序,注意打开文件夹包含.vscode文件夹,否则会运行找不到路径。
(Python就没那么麻烦,不用整json配置)

创建新线程(通用)

创建并使用多线程

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
print('主线程执行代码') 

# 从 threading 库中导入Thread类
from threading import Thread
from time import sleep

# 定义一个函数,作为新线程执行的入口函数
def threadFunc(arg1,arg2):
    print('子线程 开始')
    print(f'线程函数参数是:{arg1}, {arg2}')
    sleep(5)
    print('子线程 结束')


# 创建 Thread 类的实例对象, 并且指定新线程的入口函数,此时并没有执行
thread = Thread(target=threadFunc,
                args=('参数1', '参数2')
                )

#target=threadFunc对应执行的函数threadFunc
#args=('参数1', '参数2')这样新进程添加参数
# 执行start 方法,就会创建新线程,
# 并且新线程会去执行入口函数里面的代码。
# 这时候这个进程有两个线程了。↓
thread.start()

# 主线程的代码执行 子线程对象的join方法,
# 就会等待子线程结束,才继续执行下面的代码
thread.join()
print('主线程结束')

运行该程序,解释器执行到下面代码时