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));
}
}