符号
双冒号::
局部变量和全局变量重名的时候,在c++中可以通过::来引用全局变量。
C和c++结构体定义差别
在c语言中,结构体变量不能在定义的时候赋值初始化,但是c++是可以的。
C语言中,结构体定义变量必须加struct,而c++可以不加。C++相对于c更加灵活。
数组
- 数组名是一个常量不能修改也不能赋值
- 数组不能批量进行操作
- 二维数组,第一维可以省略,第二维不能省略
- 二维数组可以看作一个一维数组,数组中的每个元素都是一个一维数组。
- Enum使用enum xyz{a,b,c,d};//0,1,2,3
- 数组没有副本机制,如果在函数中传递会退化为指针
- Int a[3][5]
Int(*p) [5] = a;//二维数组名本质-指向一个固定长度的数组的指针常量
Int(*py)[3][5] = &a;//一个指向固定长度的二位数组的指针,也称之为面指针
Int *px = *a;//*a就是int * - Int a[10], a是int 指针,&a是int()[10]类型,数组指针
- Int a[3][5], a是int ()[5],&a, int()[3][5]面指针,*a是int *指针
数组实战
针对数组的线性表,满足增删查改
为了开发方便,不能写道一个c文件中,需要实现数据的分层
商业化的软件库必须严谨
链表
定义
struct MyStruct
{
int data;
struct MyStruct *pnext;
};