32课:指针与数组
🔗

指针与数组

指针遍历数组

📖知识引入

🏷️数组名是地址
数组名就是首元素的地址,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课完成!继续探索下一课吧 🚀