C 遍历数组的 5 种方法

444 阅读1分钟

1. 下标遍历

int main() {
  int arr[] = { 1, 2, 3 };
  for (int i = 0; i < 3; i++) {
    printf("%d = %d\n", i, arr[i]);
  }
}

2. 指针(数组名)遍历

数组名 退化或者自动转换 成右值指针

int main() {
  int arr[] = { 1, 2, 3 };
  for (int i = 0; i < 3; i++) {
    printf("%d = %d\n", i, *(arr + i));
  }
}

3. 指针遍历

int main() {
  int arr[] = { 1, 2, 3 };
  int* p = arr;
  for(int i = 0; i < 3; i++) {
    printf("%d = %d\n", i, *p++);
  }
}

4. 数组指针遍历 1

这个比较直观,对数组取地址,就是指针数组

int main() {
  int arr[] = { 1, 2, 3 };
  int (*p)[] = &arr;
  for (int i = 0; i < 3; i++) {
    printf("%d = %d\n", i, (*p)[i]);
  }
}

5. 数组指针遍历 2

思路,依然是数组名可以当做右值指针使用

int main() {
  int arr[] = { 1, 2, 3 };
  int (*p)[] = &arr;
  for(int i =0; i < 3; i++) {
    printf("%d = %d\n", i, *(*a + i));
  }
}