加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

(八)数组(2):二维数组&&多维数组

发布时间:2022-12-05 11:27:02 所属栏目:PHP教程 来源:
导读:  有了一维数组的基础,多维数组就很好学习了

  首先给个例子

  我是例子

  假如你想对1~16的数字按这样顺序排列,而不是1,2,3,...,16,这就是一个二维数组

  那么应该怎么创建呢?
  有了一维数组的基础,多维数组就很好学习了
 
  首先给个例子
 
  我是例子
 
  假如你想对1~16的数字按这样顺序排列,而不是1,2,3,...,16,这就是一个二维数组
 
  那么应该怎么创建呢?
 
  一维是
 
  int stu[16];      //方括号里数字可以省略不写
  那么二维就是
 
  int stu[4][4];          //一般不省略
  由于有空字符的存在(null),有几个数值[]里写几个就行
 
  那么第一个方括号就代表横向的一个维度,也就是所谓的X轴
 
  第二个就是纵向维度,即Y轴
 
  但是C语言中的维度方向跟数学是不一样的,Y轴与数学正好相反
 
  C语言轴的方向
 
  X轴从左到右,Y轴从上到下
 
  所以上面数字的排列刚好对应C语言的逻辑维度方向
 
  那么该如何赋值与输出呢?
 
  直接给某地赋值非常方便,比如我想给第一个赋值为1,那么只需
 
      stu[0][0] = 1;
  而顺序赋值,可以直接写成数组方式,比如
 
      int stu[4][4] = {{1,2,3,4},
      {5,6,7,8},
      {9,10,11,12},
      {13,14,15,16}
   };
  注意每组数据用{}括起,用,分开
 
  如果输出整个数组,想想一维是用一个for循环输出的
 
  那么二维只需两个for就行啦o(^▽^)o
 
  参考代码:
 
      for(int i=0;i<4;i++)
     {
         for(int j=0;j<4;j++)
      {
      printf("%d,",stu[i][j]);
      }
      printf("\n");
     }
  两层for循环逻辑大概是这样的:
 
  第一层i=0,j=0,然后进到了j的循环中,执行一遍printf,再次回到j循环(因为有大括号)
 
  此时i=0,j=1,继续循环执行
 
  当j=4时,内部循环不符合条件,跳出内部循环,输出一遍回车,然后进入外部循环,即i=1
 
  然后内部循环重新执行四遍PHP多维数组,j=0,1,2,3,一直重复到i=4退出循环
 
  结果
 
  最基本的二维数组方法就是以上这些,其实多维数组也同二维数组,只不过多加了几个维度
 
  创建时多打几层{},输出时多写几个for照样搞定
 
  但是实际操作中很少用到三维以上的数组,这里给一个声明三维数组的例子:
 
  int stu[2][3][4]={{{1,2,3,4},{5,6,7,8},{9,10,11,12}},{{13,14,15,16},{17,18,19,20},{21,22,23,24}}};
  
  放张图片理解理解(?-ω-`)
 
  好的那么本节课内容差不多到这里就结束了,喜欢的朋友点个赞,当然关注也行( ̄▽ ̄)
 
  把二维数组源码摆出来,供大家学习(欣赏)
 
  #include
  int main()
  {
     int stu[4][4] = {{1,2,3,4},
      {5,6,7,8},
      {9,10,11,12},
      {13,14,15,16}
   };
      for(int i=0;i<4;i++)
     {
         for(int j=0;j<4;j++)
      {
      printf("%d,",stu[i][j]);
      }
      printf("\n");
     }
     return 0;
  }
 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!