指针
1、定义形式:指向的内容的类型 *指针名;
2、存在空指针
3、指针变量存的是地址。提到指针便会有一个指向关系。
4、指针可以动态申请数组new。使用后可以delete
5、数组名是一个常指针。它指向的地址不再改变。
6、指针++:指针有当前指向的位置,也就是指针存的地址,加一个此指针所指向的内容的字节数大小。如果此指针表示数组的首地址,则++表示指向数组的下一个元素。
引用
1、定义形式类型 & 引用名=初始值
2、意义:给对象起别名。操作引用就是直接操作原变量。我觉得存在引用主要是为了作为函数参数服务。
3、注意:
- 既然是起别名,那么必须要有原名,所以定义引用的时候必须绑定好原来的对象(可以是基本数据类型,也可以是引用数据类型)。即不存在空引用
- 绑定好后,引用名和原名都代表同意部分内容。对引用操作就是对原有内容操作
- 绑定后,此引用便不会再绑定其他的内容
const限定指针
意义:保证值永远不变
类型:
- 指向常量的指针。放宽后,允许将变量地址赋值给const指针。可以修改变量的值,但是不可以通过指针修改变量内容
const type *cp;
或者type const *cp;
- 指针可以只想变量,但是只想只能初始化一次
type* const cp = initAddressValue;
- 指向常量,并且只能绑定一次
const type* const cp = initAddressValue;
- 常量不可以被非const限定的指针指向
结构体
1、形式struct 结构提名{访问权限: 数据类型 数据名,数据类型 数据名};
2、说明:
-
结构体中的数据类型可以是基本数据类型,也可以是复杂数据类型
-
最后一个数据后没有逗号
-
结构体的}后要添加分号
-
访问权限有public,private,protected
-
如果不写访问权限,默认是public。类型如果不写访问权限,默认私有
-
声明方法:
stu xm;
xm.age=1;
如果这样写struct stu{ int age; }msn;
msn是结构体的变量