指针数组vs数组指针——双胞胎的区别
这两个长得很像,但作用完全不同:
- #include <stdio.h>
- int main() {
- // 指针数组:是个数组,里面装的都是指针
- char *arr1[] = {"苹果", "香蕉", "橙子"};
- // 数组指针:是个指针,指向一个数组
- int nums[] = {1, 2, 3, 4, 5};
- int (*arr2)[5] = &nums;
- printf("指针数组的内容:\n");
- for(int i = 0; i < 3; i++) {
- printf("%s ", arr1[i]);
- }
- printf("\n");
- printf("数组指针指向的数组:\n");
- for(int i = 0; i < 5; i++) {
- printf("%d ", (*arr2)[i]);
- }
- printf("\n");
- return0;
- }
复制代码
记住:指针数组是装指针的盒子,数组指针是指向盒子的手!
|
|