看我为了水作业速通C++!

 和java不太一样的一样的标题打个*,方便对比

基本架构*

#include
using namespace std;

int main()
{
    system("pause");
    return 0;
}

打印*

cout <<  "需要打印的内容" <

endl 是一个特殊的输出流控制符,它代表"end line"

批注

//

/*

变量

数据类型 变量名 = 变量初始值;

int b =10;

常量*

 define 宏常量

通常在文件上

#define 常量名 常量值

*这个听学长说用了容易出问题所以还是推荐第二种

const 修饰的变量

通常在变量定义前假关键字const

const 数据类型 常量名 = 常量值

数据类型

整型

short

int 

long

long long

实型(浮点型)

单精度 float (7位有效数)

双精度 double(15-16位有效数)

字符

char xx = ‘a’

转义字符

看我为了水作业速通C++!_第1张图片

字符串

C风格*

char 变量名[ ] = "字符串值"

C++风格

string 变量名 = "字符串值"

布尔型

bool flag = true/false

数组

是一个集合,里面存放了相同类型的数据元素,并且是由连续的内存位置组成的

一维数组

定义

数据类型 数组名[数组长度];

数据类型 数组名[数组长度] = {值1, 值2, 值3 ...};

数据类型 数组名[ ] ={值1, 值2, 值3 ...};

数组名*

1. 可以统计整个数组在内存中的长度: sizeof(数组名)

e.g获取数组元素个数

sizeof(arr)/sizeof(arr[0])  //整个数组占用的内存空间/每个元素占有的内存空间

2. 可以获取数组在内存中的首地址 :cout<<数组名<

e.g数组中第一怪元素的地址为:(int)&arr[0] //其实和首地址是一样的

&是取址符

二维数组

二维数组就是在一维数组上多加一个维度

定义

数据类型 数组名[行数][列数];

数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}};

数据类型 数组名[行数][列数] = {数据1, 数据2, 数据3, 数据4};

数据类型 数组名[][列数] = {数据1, 数据2, 数据3, 数据4};

*推荐使用第二种

数组名*

查看二维数组所占内存空间: sizeof(数组名)

e.g获取二维数组行数

sizeof(arr)/sizeof(arr[0])

获取二维数组列数

sizeof(arr)/sizeof(arr[0][0])

获取二维数组首地址: 直接打印

运算符

算术

处理四则运算

看我为了水作业速通C++!_第2张图片

*注意在除法运算中除数不可以为0

赋值

将表达式的值赋给变量

看我为了水作业速通C++!_第3张图片

比较

表达式的比较,返回true/false

看我为了水作业速通C++!_第4张图片

逻辑

根据表达式的值返回true/false

看我为了水作业速通C++!_第5张图片

非零的数都是真,不仅仅是1!


程序流程结构

顺序

程序按顺序执行,不发生跳转

选择

依据条件是否满足,有选择执行相应功能,还可以嵌套

if

单行

if(条件){

满足条件执行的语句

}

多行

if(条件){

条件满足执行的语句

}else{

条件不满足执行的语句

}

多条件

if(条件1){

条件1满足执行的语句

}else if(条件2){

条件2满足执行的语句

}else{

都不满足执行的语句

}

三目运算符

表达式1 ? 表达式2 :表达式3

1为真,执行2

1为假,执行3

e.g 1

将a和b做比较,将变量大的赋值给c

c = (a>b ? a:b);

e.g2 

三目运算符返回的是变量,可以继续赋值

(a>b ? a:b) =100;

switch

执行多条件分支

switch(表达式){

        case 结果1: 执行语句;break;

        case 结果2: 执行语句;break;

        ...

        default: 执行语句;break;

}

case里如果没有break会一直执行下去

与if相比,对于多条件判断效率高,但是不可以判断区间

循环

依据条件是否满足,循环多次执行某段代码,可以嵌套

while

满足循环条件,执行循环语句

while(循环条件){

循环语句

}

for

满足循环条件,执行循环语句

for(起始表达式;条件表达式;末尾循环体){

循环语句;

}

跳转语句

break

用于跳出选择/循环结构

continue

循环中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环

goto*

如果标记的名称存在,执行到goto语句时候,会跳转到标记的位置

goto 标记

标记:

函数*

定义

返回值类型 函数名(参数列表){

        函数体语句

        return 表达式

e.g

int add(int num1, int num2){

        int sum = num1 +num2;

        return sum;

}

调用

函数名(参数)

值传递

函数调用时将数值传入给形参;值传递时,如果形参发生并不会影响实参

e.g  交换输入的两个数

void swap(int num1, int num2){

        int temp = num1;

        num1 = num2;

        num2 = temp;

}

常见样式

无参无返

e.g

void test01(){

        cout << "this is test01" << endl

}

有参无返

void test02(int a ){

        cout <<"this is test02 a ="<

}

无参有返

int test03(){

        cout<<"this is test03" <

        return 1000;

}

有参有返

int test04(int a ){

        cout <<"this is test02 a ="<

        return a;

}

声明*

提前告诉编译器函数名称以及如何调用函数,这样函数就可以在mian'方法后面。

函数的实际主题可以单独定义

*声明可以多次,定义只有一次

e.g

//声明

int max(int a, intb);

int main(){

        略

}

//定义

int max(int a, int b){

return a>b?a:b;

}

分文件编写*

让代码结构更加清晰

步骤:

1. 创建后缀名为.h的头文件

2. 创建后缀名为.cpp的源文件

3. 在头文件中写函数的声明

4. 在源文件中写函数的定义

感觉视频比较直观:55 函数-函数的分文件编写_哔哩哔哩_bilibili

 

 

关键字

sizeof

求出数据类型占用内存大小

sizeof (数据类型/变量)

cin*

用于从键盘获取数据

cin>>变量

你可能感兴趣的:(c++,算法,开发语言)