✨且看我一维变二维✨🤯
❁ 今天给大家分享一个,高级的二维数组,大家快来康康吧!!!
1.指针数组;
------> (问:这里指针数组是指针还是数组?指针or数组)
------😋那么什么才是指针数组呢?😋
答案:✨数组中存储的元素都是指针类型(如 :int*类型)
引入——>之前我们的数组如
---->int arr[3]={1,2,3}; int代表数组类型,也代表着元素类型
所以我们要存放指针如:int*类型,所以不难推出
---->int* arr[4]={&a1,&a2,&a3,&a4};是指针数组的代码。
2.一维数组;
一维数组就不多赘述了哈!!!!
在这里我们只需要知道数组名代表的是数组首元素的地址就可以了~
话不多数,我们就直接进入主题,冲冲冲!!!
3.一维化二维:
🤔思考:如果我们用一个一维数组每一个元素——>来代表二维数组的每一行是不是就可以实现了呢?🤔
有想法,就动手,来试试!!!
思考图如下:
---->✨这里我就可以把上图的arr[ ]数组换成我们的指针数组,结合一维数组相关知识,是不是就可以实现咯✨
注意: 上图的&a1等是整个数组的地址我们只需要首字母就可以。
实现:
----->通过首元素我们便可以顺藤摸瓜找到相关一维数组,也就可以输入“ 二维数组 ”每一行的元素,也就实现咯一维化二维咯
----->代码如下:
#include<stdio.h> int main() { int a1[] = { 1,6,3,4 }; int a2[] = { 2,8,4,5 }; int a3[] = { 3,4,5,6 }; int a4[] = { 7,8,9,0 }; int* arr[4] = { a1,a2,a3,a4}; int i = 0; for (i = 0; i < 4; i++) { int j = 0; for (j = 0; j < 4; j++) { printf("%d ", arr[i][j]); } printf("\n"); } return 0; }