本文开始
1:二维数组的创建与初始化.
其实二维数组的创建与一维数组的创建差不多:数组元素类型+数组名[常量表达式][常量表达式];比如:
但是数组在创建的时候还是需要注意这种形式:
在创建数组的时候第二个常量表达式必须要指定大小,不然就不可以创建数组,至于为什么下面的文章会讲.也即记住一句话二维数组如果有初始化,行可以省略,列不能省略.
二维数组初始化:顾名思义就是给数组赋值如:
在编写代码的时候我们尽可能按照arr2,那样创建数组,因为这样的代码可读性高.
2二维数组的使用.
这里与一维数组的使用类似,都使用了[]下标引用操作符,让我们通过这个引用符将1~9打印在屏幕上面吧>:
对于数组的引用,就需要知道这个[]下标引用操作符.
3 二维数组在内存中的存储.
在内存中存储,二维数组其实可以看成一维数组的储存方式,都是连续的,一行结束后另一行就会接着存储.:
这也导致了我们可以把二维数组看成一维数组来理解,加入就是上面的数组,我们可以把数组看作3个一位数组所组成:
通过这样我们还可以来算数组行有多上:
且在数组中元素内存的地址应该是:低地址——>高地址,下面用的是3行4列的数组,也是连续的
4数组越界.
数组越界:顾名思义,就是用到了我们不该用的空间(没有向操作系统申请的空间),比如以一维数组为列:
同理二维数组也可能会出现数组越界的情况:
5数组作为函数的参数
其实在我们使用数组传参的时候,使用数组名其本质上是数组首元素的地址 ,除了以下两种情况
1:当使用sizeof(数组名)这种情况下我们就认为此时数组名代表的是整个数组,而他求得也是数组的大小,于是我们就可以利用他来求数组一共有多少个元素.
2:当使用&数组名的时候,我们认为这种情况下他是数组整个的地址,但是我们在把他的地址打印出来的时候,也是从首元素开始的与&数组名[0],数组名,他们的地址是相同的
从这里可以看出数组名本质上是数组首元素的地址
但看不出&arr与arr的区别:>于是看下图
这里就可以看出来。
除了上述两种情况下,数组名就是数组的首元素的大小。
下篇文章将写三子棋游戏,欢迎大家来看。
如果本篇文章对你有用的话,可以点一个赞支持哦!
或者是点个关注!
最后谢谢大家的耐心观看!