一 C语言回顾
一 变量类型:基本数据类型
-
整型 2. 浮点型 3. 字符型
二 选择与循环
-
if
-
switch 方向操作
-
for while do...while
三 指针
-
双重指针,多重指针
-
指针函数和函数指针
-
指针数组和数组指针
四 数组
-
推箱子地图
五 函数
-
函数递归
六 预处理
-
防止头文件重复包含
七 结构体,联合,枚举
二 bool类型
-
true 和 false (非零为真)
三 内联函数
-
内存(代码区)膨胀:以空间换时间
inline int GetNumber()
{
return 9;
}
//在函数返回值类型前加 inline
四 函数重载
一 重载条件
-
函数名必须完全一致
-
参数表必须有所不同 A 参数个数 B 参数类型
-
返回值类型,不在条件之内
-
const 修饰函数也可以构成重载
五函数参数缺省
一 注意事项
-
给默认参数,只能从后向前给
-
缺省的值必须是常量
-
只能在声明时给默认值
-
二义性
六 引用
一 注意事项
-
引用就是变量的别名,所以定义引用时就需要初始化
-
对引用的操作和对引用所对应的变量的操作是完全等价的
-
& 在引用这里不是取地址符,而是起到标志的作用
-
引用不是定义新的变量或对象,因此不会为引用开辟空间
二 引用与指针的区别
❤️在效率上没有多大的区别
-
引用时别名,不会被分配空间。指针是实体,会被分配空间
-
引用在定义时必须初始化,而且不会改变。指针定义则相反
-
指针有多级指针,而引用没有
-
引用是直接访问,指针是间接访问
三 函数传参
七 new 和 delete(关键字)
一 new 的使用
-
申请单个内存
-
申请单个内存的同时初始化
-
申请多个连续内存
二 new 的特性
-
关键字
-
可以分配单个内存,也可以分配多个连续内存
-
申请多个内存时不能初始化
-
memset :内存拷贝
三 delete 的使用
-
释放单个内存
-
释放多个连续内存
四 delete 的特性
五 动态内存操作的常见问题
-
没给指针分配内存,就使用
-
未给指针指向的内存给值
-
超过范围,越界
-
不释放,内存泄漏
-
不置空
八 命名空间
作用域符 ::
命名空间标识符 :: 成员 :: 成员 ...
一 注意事项
-
符合合法标识符命名的规范
-
可以在全局也可以在局部(可以嵌套)
-
不能在 函数或类 里定义
-
作用域不用加 ;
-
命名污染:在同一个区域里面,如果有两个名字相同的命名空间,那便是同一个
namespace MySp
{
int n;
}
namespace MySp
{
int n;//会报错,重复定义同一个变量
}
//这两个其实就是同一个命名空间
二 取别名
namespace MySp
{
int n;
}
namespace Y = MySp;//取别名
九 string的基本操作
一 介绍
字符串,类类型
二 常用函数
int main()
{
string str1 = "HuNan!";
string str2 = "ChangDe";
string str3;
int len;
//复制str1到str3
str3 = str1;
//连接str1和str2
str3 = str1 + str2;
//连接后,str3的总长度
len = str3.size();
len = str3.length();
}