C++总览
一、输入输出
-
scanf("%格式符",&变量名); cin>>变量名
-
printf("%格式符",变量名或表达式); cout<<输出内容
二、数据类型及格式符
-
整型 int %d
-
长整型 long long int %lld
-
单精度浮点型 float %f
-
双精度浮点型 double %lf
-
字符型 char %c
-
字符型char a='a'
-
字符串
-
C:char a[]="abc"
-
C++:string str1="abc"
需要:#include<string>
-
-
-
布尔类型 bool
bool类型占1字节大小 输入只能输入数字,不能输入false和true
-
真 True 1
除了0代表假,任何值都代表1
-
假 False 0
-
-
数组
三、浮点型数据小数有效位
-
printf("%.数字f",变量名或表达式);
-
printf("%.数字lf",变量名或表达式);
四、算术运算符
-
+ 加法;正号
-
- 减法;负号
-
* 乘法
-
/ 除法
-
% 取模运算 只有整数才能取模运算
-
递增递减
-
++ 递增
前置先++,后置后++
-
前置:先让变量+1,然后进行表达式运算
a=++b * 10;等价于: b=b + 1; a=b * 10;
-
后置:先进行表达式运算,然后让变量+1
a=b++ * 10;等价于: a=b * 10; b=b + 1;
-
-
-- 递减
-
五、赋值运算符
-
= 赋值
-
+= 加等于
-
-= 减等于
-
*=
-
/=
-
%=
六、比较运算符
比较的返回结果: 真:1 假:0
-
==,等于
-
!=,不等于,
-
< ,小于,例:3<6;3+4<7
-
> ,大于,例:5>3;4+7>15
-
<=,小于或等于,例:5<=3;4+7<=15
-
>=,大于或等于,例:5>=3;4+7>=15
七、逻辑运算符
-
&&(与)
-
||(或)
-
!(非)
真变假,假变真
八、程序流程结构
-
顺序结构
-
选择结构
-
if语句
-
单行if(){}
-
多行if(){}else{}
-
多条件if(){}else if(){}else if(){}else{}
-
-
三目运算符
-
判断语句1 ? 语句2 : 语句3如果语句1正确,执行语句2,否则执行语句3
-
判断语句1 ? 变量1 : 变量2如果语句1正确,返回变量1,否则返回变量2
c为max(a,b)的表达式:c=( a>b ? a : b )
-
-
多路分支 switch语句
-
缺点
只能判断整形或者字符型 是多路径单通道,不能是一个区间
-
优点
整洁清晰 效率高
-
-
-
循环结构
-
for循环
-
while循环 while(满足的条件){执行语句}
-
do{}while()
-
-
跳转语句
-
break语句 跳出所在循环
-
continue语句 跳过本次循环中尚未执行的语句,继续执行下一次循环
-
goto 语句
goto 标记(不用定义); ... 标记;
-
九、函数
-
定义:返回值类型 函数名(参数列表){ 函数体语句 return表达式 }
-
传递
-
1.值传递
-
函数内部的形参的改变不会影响外部实参的值
-
-
2.地址传递(指针形参)
-
形参为指针,值函数将地址(&变量)传给形参
-
-
3.引用传递
-
形参成为了实参的一个“别名”,对引用的操作就是对对象本身的操作
-
-
4.数组形参
-
5.带默认值的形参
-
6.对象形参
-
函数头或声明的括号内:(类名 对象名)
-
-
-
分文件编写
-
1.创建名字为 函数名.h 的头文件
-
2.头文件中写上基本框架(iostream和std)和函数的声明
自定义函数是在基本框架前提下实现的
-
3.创建名字为 函数名.cpp 的源文件
-
4.源文件中写#include<函数名.h>和函数的定义部分
-
-
带默认参数
1.有声明(也叫原型)在声明给出,无声明在定义头部给出 2.默认参数指定顺序:从右到左
-
重载函数(C++特有)
功能相同或类似,只是形参的个数,类型,顺序有不同的同名函数,称为重载
-
函数名相同
-
形参的某方面有区别
-
不能通过函数返回值类型判断函数重载
-
十、内存
-
1. 内存分区模型
-
1.代码区
-
存放函数体的二进制代码,由操作系统进行管理控制
-
性质:
-
1.共享 可以多次重复运行不必再复制一次代码,内存中有一份代码就行
-
2.只读 防止意外修改代码
-
-
-
2.全局区
-
存放全局变量和静态变量以及常量
-
-
3.栈区
-
由编译器自动分配释放,存放函数的参数值,局部变量等
-
-
4.堆区
-
由程序员分配和释放,若程序员不释放,程序结束时由操作系统释放
-
-
-
2. new和delete运算符
-
new
实现动态内存空间的申请
-
代码:
int ptr ; //申请1个int大小的内存空间,该空间中是随机数,即ptr是随机数 ptr = new int ; //申请连续10个int大小的内存空间实现动态内存一维数组 ptr = new int[10] ; //申请1个int大小的动态内存空间,该空间中值为10,即*ptr=10 ptr = new int (10) ;
-
new返回的是一个指针
new int(10)相当于int *一个值为10的指针
-
-
delete
实现动态内存空间的释放
-
代码:
//释放单个空间,对应于new 类型名; delete 指针变量名; //释放数组空间,对应于new 类型名[ ]; delete [ ]指针变量名;
-
-
十一、指针与引用
-
指针
-
*运算符
-
定义时,告诉计算机这个一个指针
-
作为运算符:作用于指针时表示访问指针所指向的对象
-
-
-
引用
-
定义 数据类型 &引用名=目标变量定义时必须有目标变量
引用名就相当于是目标变量的别名 两者 值和id一模一样 是同一个变量
-
十二、命名空间(名字空间)
-
命名空间中内容的使用
-
方法1. 在使用该命名空间中的内容时:名字空间名称::局部内容名
-
方法2. 在使用...前:using namespace 命名空间名称
-
方法3. using 名字空间名称::局部内容名
-