指针与数组
1. 完整例子
| 1 | #include <stdio.h> |
| 2 | |
| 3 | int main(void) { |
| 4 | int a[3] = {10, 20, 30}; |
| 5 | int *p = a; // 数组名可当首元素地址 |
| 6 | printf("%d %d\n", a[1], *(p + 1)); // 20 20 |
| 7 | for (int i = 0; i < 3; i++) { |
| 8 | printf("%d ", *(p + i)); |
| 9 | } |
| 10 | printf("\n"); |
| 11 | return 0; |
| 12 | } |
2. 拆解
- p+1 指向下一个 int,不是下一个字节
- a[i] 与 *(a+i) 等价直觉
- 传数组给函数时长度另传