🔗
指针与数组
指针遍历数组
📖知识引入
🏷️数组名是地址
数组名就是首元素的地址,arr等价于&arr[0]
➡️指针运算
p+1指向下一个元素,指针可以加减整数
🔄指针遍历
用指针遍历数组,*(p+i)等价于arr[i]
🔀指针与数组互换
数组名可以当指针用,指针也可以用下标访问
📏指针步长
p+1实际移动的字节数取决于指针类型,int指针移动4字节
💡
数组名就是首元素地址,arr和p可以互换使用
🔍指针与数组示例
📝指针与数组示例
💻
点击「运行」查看输出
指针遍历数组:
int arr[5] = {10, 20, 30, 40, 50};
int *p = arr; // p指向arr[0]地址: 0x100 0x104 0x108 0x10C 0x110
┌────┬────┬────┬────┬────┐
arr: │ 10 │ 20 │ 30 │ 40 │ 50 │
└────┴────┴────┴────┴────┘
p → ↑ ↑ ↑ ↑ ↑
p+0 p+1 p+2 p+3 p+4*(p+0)=10 *(p+1)=20 *(p+2)=30 等价于 arr[0] arr[1] arr[2]
🎯小测验
第1题:数组名代表什么?
第2题:*(p+2)等价于?
第3题:int类型指针p,p+1实际移动多少字节?
📝本课知识点
- ✓数组名是首元素地址
- ✓指针运算p+1
- ✓*(p+i)等价arr[i]
- ✓指针可遍历数组
- ✓步长由类型决定
第32课完成!继续探索下一课吧 🚀