指针和引用
目的:
- 什么是指针
- 什么是自由存储区
- 如何使用运算符new 和 delete 分配和释放内存
- 如何使用指针和动态分配编写稳定的应用程序
- 什么是引用
- 指针和引用的区别
- 什么情况下使用指针,什么情况下使用引用
什么是指针
指针是存储内存地址的变量。就像int 变量用于存储整数数值一样,指针变量用于存储内存地址。
指针是一种指向内存单元的特殊变量。
声明指针
作为一种变量,指针与所有白能量一样,也需要声明:
// 声明int指针
int *pIntefer = NULL;
使用引用运算符(&)获取变量的地址
如果Varname 是一个变量,&Varname 将是存储变量的内存地址。
引用运算符(&)也叫地址运算符
使用指针存储地址
// 声明一个int 指针来存储变量Age的地址
int *pIntefer = &Age;
使用解除引用运算符(*)访问指向的数据
解除引用运算符(*)也叫间接运算符。
动态内存分配
使用new和delete动态地分配和释放内存
new表示请求分配内存,并不能保证分配总能得到满足,因为这取决于系统的状态以及内存资源的可用性。
使用new分配的内存最终都需要使用相应的delete进行释放。
将关键词const用于指针
- 指针指向的数据为常量,不能修改,但可以修改指针包含的地址,即指针可以指向其他地方。
- 指针包含的地址是常量,不能修改,但可修改指针指向的数据。
- 指针包含的地址以及它指向的值都是常量,不能修改(这种组合最严格)。
将指针传递给函数
使用指针时常犯的编程错误
- 内存泄露–使用new动态分配的内存后,忘记使用配套的delete释放
- 指针指向无效的内存单元
- 悬浮指针
引用是什么
引用是变量的别名。声明引用时,需要将其初始化为一个变量,因此引用只是另一种访问相应变量存储的数据的方式。
Ref2是Original的别名,它们位于内存的同一个地方。
引用可以避免复制操作。
—更新—2024.7.17
二维数组
-
用一维数组输出二维数组的内容
-
memcpy()数组复制
-
项目3