信息学奥赛 · 06/01/2023 4

C++基础语法梳理

表达式 a=10; 10>5

运算符 赋值运算符 比较运算符 ! + – * / % ++ — += -= *= /= & * () 三元

优先级 ()& *

++ — !

乘除取余 + –

比较

赋值 += -= *= /= 三元

运算符结合性 * & = 左结合

变量 命名规则 数字字母下划线 不能是数字开头 不能是关键字

常量 const int MAX=10; #define MIN=10; 50 2

作用域 {} for(int i=0;){} cout<<i;没有i的。 全局变量定义在main()外面的

数据类型 int bool char float double void string object

数据类型的转换:隐式 + – 加减号 定义

数据类型的转换:显式 1==int(True) True==bool(78) int(“a”)

输入输出 cout cin #include

输入输出 printf(“%d”,10) int a; scanf(“%d”,&a)#inclued

结构 顺序执行 先定义 函数必须先声明

选择结构(条件分支) if switch

循环结构 while for do while break continue 时间复杂度

时间复杂度 是找程序里最复杂的循环 将循环次数看作无穷大

常见的时间复杂度 O(1) O(n) O(n*n)

数组 一维数组 二维数组

定义 数据类型 名字[数组长度] int a[10];

int b[5][5];

数组输入 数组输出 for()

二维数组的输入输出 是for 套 for

数组名 是 地址

地址++ 是拿到了数组的下一位

字符串 3种定义方式

定义:

char a[]=”abcdefg” ;
char b[4]={‘a’,’b’,’c’,’\0′}//这里注意必须是单引号
//只有后面有\0的时候它才是字符串否则是 char型数组

include

string c=”abcdefghijklmn”;

获取字符串长度

cout<<sizeof(a)<<endl;//7
cout<<sizeof(b)<<endl;//4
cout<<strlen(a)<<endl;//7
cout<<strlen(b)<<endl;//3
cout<<c.length()<<endl;//14

字符串拼接

strcat(a,b) //拼接b到a后面
strcpy(a,b)//把b复制给a
strchr(a,’a’)//找到 a里面第一个’a’返回它的位置 返回值是指针
strstr(a,b)//找到a里面 b的位置 返回值是指针
int *p;
p=strchr(b,”b”)++;

string l1=”dfsdfa”;
string l2=”fsdaffda”;
c=l1+l2//拼接
l1=l2//复制

函数

1、先定义(声明)后使用
2、返回值 和函数定义的数据类型一致
3、函数的传参 3种传参方式
形参 实参
引用传递 int& a a
参数传递 int a a
指针传递 int* p 地址