首页 » 技术分享 » 二维数组

二维数组

 

二维数组:

 

1.首先我们定义一个二维数组

int arr[3] [4];//这表示定义了一个34列的二维数组,并且行优先


有以下几种表示二维数组元素的方法:

int brr [3] [4] ={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

int crr [3] [4] = {1,2,3,4,5,6,7,8,9,10,11,12};

Int err [3][4] = {1,2,3,4,5};

当表示某一特定元素时,例如21列的元素1时,可用以下两种方式来表示

frr [2][1]=1;

int hrr[3][4]={0,0,0,0,0,0,0,0,0,1};

int grr[][4]={1,2,3,4,5,6,7,8,9,10};//二维数组中行可以省略,至少写出列,编译器可以推断出来行

 

//输出crr的内容

  for(int i=0;i<3;i++)//遍历行

  {

     for(int j=0;j<4;j++)//遍历列

     {

         printf(“%-3d”,crr[i][j]);//-3表示左对齐

     }

     printf(“\n”);

}

 

2. 一维数组与二维数组的区别

一维数组,如下图:

 一维数组数组名表示数组首元素

int arr[5];

arrint*

arr+1:  int*

arr[0]: 红色格子

 

 二维数组,如下图:

int brr[3][4]    

数据类型

1.brr:          int(*p)[4] //首行的地址

2.brr+1:        int(*p)[4]//下一行的地址

3.brr[0]:        int* //brr中第0列元素的地址,(brr[0]==arr

4.brr[0]+1:      int*//brr[0][1]

5.brr[0][0]:      int

 

一维数组数组名表示数组首元素,这句话只适用于一维数组,因此我们可以将二维数组看成特殊的一维数组,如第一行,将4个格子看成一个整体,引出两个概念,数组指针和指针数组

 

1. 数组指针:

int (*p)[4]:p是一个指向整型数组的指针,简称数组指针,重点在于一定是个指针,数组起修饰作用

2. 指针数组:

int *p[4]:是一个保存指针的数组

 

总结:当遇到复杂的考虑两点

一.优先级 () >[ ]> *

二.1.若是指针(带*号),则看指向什么东西

2.若指向数组(带[]),则看长度和数据类型

3.若是函数(带小括号()),则看参数列表和访问值

 

二维数组的地址

 

 

[1,0]=[0,4] 表示的是同一个地址

 

3. 递归

int  Age( int n)

{

   int tmp;

   if(n==1)

   {

     return 10;

   }

   else

      tmp=age(n-1)+2;

return tmp;

 

转载自原文链接, 如需删除请联系管理员。

原文链接:二维数组,转载请注明来源!

0