一、指针
1)
1.指针 就是地址 (指针也是一种数据类型)
指针所占的内存空间:
在32位操作系统下 占用4个字节,在64位操作系统下 占用8个字节
2.指针的定义: 数据类型 * 指针变量名 如 int p
3.让指针记录a的地址 p = &a 此时p的值为a的地址 并且可以通过p 修改a的值
(ps:2,3 可以写成 int* p = &a)
2) const修饰指针
/*
1.常量指针 const *p = &a; 特点:指针的指向可以改 指针指向的值不能改 *p = 10(错误) p = &b;(正确)
2.指针常量 int* const p = &a; 特点:指针的指向不可以改 指针指向的值能改 *p = 10(正确) p = &b;(错误)
3. const int* const p = &a; 都不能改
*/
3) 指针与数组(数组名为数组的首地址)
4)指针与函数(指针作为函数的参数)(函数指针)
1.值传递
2.地址传递
5)结构体指针
/*
通过指针访问结构体成员 通过操作符-> 结构体指针可访问结构体属性
*/
#include <string.h>
struct student
{
string name;
int age;
int score;
};
int main()
{
// 创建结构体变量
student s1 = {'张三',18,100};
// 结构体指针指向结构体变量
student* p = &s1;
// 通过指针访问结构体变量中的shuj
cout << '姓名' << p->name<< endl;
}
6)空指针与野指针
空指针 指针变量是指向内存中编号为0的空间 空指针指向的内存不能访问
给指针进行初始化 int *p = NULL;
野指针 指针变量指向非法的内存空间
7) 引用
****二、结构体****
***三、封装、继承、多态***