C语言:指针数组
如:
int a = 10;
int b = 20;
int c = 30;
int* arr[] = [&a,&b,&c];
指针数组存放的都是指针,指针数组是上面类型的,里面的内容就都是什么类型的,因为是int*类型,这是指针类型,所以arr数组(指针数组)内存放的都是int*类型的指针,相当于,存放了三个内容:
int * arr[0] = &a
int * arr[1] = &b
int * arr[2] = &c
还有就是指针数组内存放数组的问题
如:
int a[] = {1,2,3,4,5};
int b[] = {2,3,4,5,6};
int c[] = {3,4,5,6,7};
int* arr[] = { &a,&b,&c };
这样arr中存放的就是每个数组的首元素地址,我们给它打印出来.
其次另一种打印方法可能会产生误解(PS:不同位置再printf处).
这里的 arr[count][num]是不是很想二维数组打印呢?
不可否认的,这的确是二维数组的打印方式
那么这就是二维数组了吗?
答案是:否
因为二维数组再内存中的存储方式是连续的,比如说:a的内容是12345然后直接到b的内容23456
而这里面却是,一 一 对 应 的关系&a然后是&b然后是&c,其中&a对应...&b对应...&c对应...
感谢阅读!如果有误请大佬们评论解答!!非常感谢!