内容来源于:黑马
集成开发环境:CLion
先前学习完了C++第1章的内容:
C++ 入门速通-第1章【黑马】-CSDN博客
C++ 入门速通-第2章【黑马】-CSDN博客
下面继续学习第3章:
数组:
字符数组:
多维数组:
指针基础:
野指针和空指针:
指针运算:
动态内存分配:
数组元素的移除:
数组元素的插入:
简单案例:
// 在下面的数组下标1和3中插入数字:11和66
int *pArr2 = new int[5] {1,3,5,7,9};
// 创建新数组
int *pNewArr2 = new int[7];
// 循环新数组,挨个进行元素填充(插入位置填充新元素)
int offset = 0;
for (int i = 0; i < 7; i++)
{
if (i == 1)
{
pNewArr2[i] = 11;
offset++;
continue;
}else if (i == 3){
pNewArr2[i] = 66;
offset++;
continue;
}
// 不是插入位置,从老数组中提取元素放入新数组中
// 公式:老数组的元素下标 + offset = 新数组的元素下标
pNewArr2[i] = pArr2[i - offset]; // 此时的i是新数组的下标
}
delete[] pArr2;
pArr = pNewArr2;
for (int i = 0; i < 7; i++)
{
cout << "新数组的元素是: " << pNewArr2[i] << endl;
}
指针悬挂:
注意: p1正常释放, 没有问题, p2因为引用了p1, 成为了悬挂指针。搞清楚,野指针是指被声明但没有被赋值的指针
const指针:
C++一套通关系列课程在线笔记:https://www.yuque.com/bigdata-caoyu/newcp
参考:
第三章-01_数组的定义_哔哩哔哩_bilibili