C++语言复习笔记
零.HelloWorld
1.注释:
2.别名
类型 | 内容 | |
---|
using | using t=double; |
typedef | typedef double weight; |
3.HelloWorld
#include<iostream>
#define var auto
using namespace std;
int main()
{
cout << "HelloWorld!"<< endl;
return 0;
}
一.基本数据类型
类型 | 内容 |
---|
整型 | short,int,long,long long |
符号 | signed,usigned |
字符 | char |
浮点 | float,double,long double |
布尔 | bool |
字符串 | 字符串常量,字符数组,string类 |
引用 | int &num=a; |
二.常量
1.字面量
类型 | 内容 | |
---|
字符 | 'A' |
字符串 | C风格 |
整数 | 十进制:0-9,八进制:0+0-7数字,十六进制:0X+0~9或A-F |
字符前缀 | u:char16_t,U:char32_t,L:wchar_t,u8:char |
整型后缀 | L:long,LL:long long,U:unsigned |
浮点 | 一般:12.5,-13.89,指数:0.534E+2 |
2.符号常量
const 类型 常量名称=值;
const double PI=3.14156;
三.变量
定义
int a=0;
int a(0);
int a={0};
四.运算
运算类型 | 内容 | 备注 |
---|
基本运算符 | +,-,*,/,% | |
自运算 | i++,++i,i--,--i | 先增后赋值和先赋值后增 |
赋值运算符 | = | |
符合赋值 | +=,-=,/=,%= | 运算后赋值 |
逗号运算 | 表达式1,表达式2 | |
关系运算 | <,>,<=,>=,== | |
逻辑运算 | &&,!,II | 短路特性 |
三元运算 | 表达式1?表达式2:表达式3 | |
位运算 | I,&,! | |
sizeof运算 | sizeof(类型名) | |
五.类型转换
1.隐式类型转换
char->short->int->long->long long->float->double
bool->0或1
2.显式类型转换
int(2.668)
static_cast<int>(0.668)
六.基本I/O
cin>>变量名1>>变量名2
cout<<变量名1<<变量名2
七.程序结构
1.选择
if(bool运算)
{
语句
}
else
{
语句
}
if(bool运算1)
{
语句1
}
else if(bool运算2)
{
语句2
}
...
else
{
语句
}
switch(变量)
{
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
...
case 常量n:
语句n;
break;
}
2.循环
//while
while(bool运算)
{
语句
}
//do-while
do
{
语句
}while(bool运算);
//for
for(初始化语句;表达式1;表达式2)
{
语句
}
//goto
goto 标签名;
标签名:
3.循环控制
语句 | 作用 | |
---|
continue | 结束本次循环 |
break | 结束循环 |
八.函数
1.定义
返回值类型 函数名(形参表)
{
}
2.调用
void f2(string str)
{
cout<<str<<"天下第一"<<endl;
}
void f1()
{
f2("苟茜茜")
}
3.递归
long long int f(long long int n)
{
if(n==1)return 1;
else return f(n-1)*n;
}
4.参数传递
类型 | 内容 | |
---|
值传递 | void fun(变量类型 变量名1,...变量类型 变量名n) |
引用传递 | void fun(变量类型 &变量名1,...变量类型 &变量名n) |
5.内联函数
inline double fun(double r)
{
return PI*r*r;
}
6.默认参数值
//有默认参数形参必须在形参列表最右边
void fun(int a=0,int b=666)
{
return a+b;
}
九.数组
1.定义
数据类型 数组名[长度];
数据类型 数组名1维长度...;
2.一维数组初始化
int a[3]={1,2,3};
int a[]={1,2,66,7};
3.二维数组初始化
int a2={1,2,3,4,5,6};
int a2={{1,2,3},{4,5,6}};
int a[][4]={{1},{0,6},{0,0,11}};
十.指针
1.定义
数据类型*变量名=地址;
2.取址与取值
3.运算
符号 | 内容 | |
---|
++ | 指向下一个数据 |
-- | 指向上一个数据 |
+n | 指向第n个数据 |
-n | 指向第n个数据 |
== | 判断指针是否为空:p==NULL |
4.数组与指针
指向数组的指针
int a[5] = { 1,2,3,4,5 };
int* p = a;
int* q = &a[0];
指针数组
int line1[] = { 1,0,0 };
int line2[] = { 0,1,0 };
int line3[] = { 0,0,1 };
int* p[3] = { line1,line2,line3 };
动态申请内存
int** p = new int* [3];
for (int i = 0; i < 3; ++i)
p[i] = new int[3];
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
cin >> p[i][j];
for (int i = 0; i < 3; i++)
delete[](p[i]);
delete[](p);
5.指针与函数
指针作为参数
//传入数据
void fun(int* p, int len)
{
for (int i = 0; i < len; ++i)
cout << p[i] << " ";
}
//传出数据
void fun(double val, int *intVal, double *doubleVal)
{
*intVal = int(val);
*doubleVal = val-int(val);
}
返回指针的函数
int * fun(int* p, int len)
{
for (int i = 0; i < len; ++i)
if (p[i] == 0)
return&p[i];
}
指向函数的指针
int run(int x, int y, int (*f)(int, int))
{
return f(x, y);
}
int max(int x, int y)
{
return x > y ? x : y;
}
int sum(int x, int y)
{
return x + y;
}
5.对象指针
Point *p1=new Point;
Point*p=&p1;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。