精华内容
下载资源
问答
  • C语言二维数组

    2019-11-23 21:31:28
    C语言二维数组1二维数组的定义和使用1二维数组的定义2.二维数组的应用3.二维数组的初始化 1二维数组的定义和使用 1二维数组的定义 二维数组的声明与一维数组相同,一般形式如下: 数据类型 数据名[常量表达式1][常量...

    1二维数组的定义和使用

    1二维数组的定义

    二维数组的声明与一维数组相同,一般形式如下:
    数据类型 数据名[常量表达式1][常量表达式2]
    其中,“常量表达式1”被称为行下标,“常量表达式2”被称为列下标。如果有二维数组a[m][n] ,则二维数组的下标取值范围如下:
    *列下标的取值范围0~n-1
    *行下标的取值范围0~m-1
    *二维数组的嘴阀下标元素是a[n-1][m-1]
    例如,定义一个3行4列的整形数据

    int a[3][4];
    

    上述代码中声明了一个3行4列的数组,数组名为a,其下标变量的类型为整形。该数组中的下标共有3*4个,既a[0][0]、a[0][1]、a[0][2]、a[0][3]、a[1][0]、a[1][1]、a[1][2]、a[1][3]、a[2][0]、a[2][1]、a[2][2]、a[2][3]。

    2.二维数组的应用

    二维数组的应用一般形式如下:
    数组名[下标][下标]
    注:二维数组的下标可以是整形常量或整形表达式
    例如,对一个二维数组的元素进行引用

    a[2][3];
    

    3.二维数组的初始化

    二维数组和一维数组一样,也可以在声明时对其进行初始化。
    (1)可以将所有数据写在一个大括号内

    int a[2][2]={1,2,3,4};
    

    如果大括号内的数据少于数组元素的个数,则系统将默认后面未被赋值的的元素赋值为0。
    (2)在为所有元素赋初值时,可以省略下标,但是不能省略下标。

    int a[][3]={1,2,3,4,5,6};
    

    系统会根据数据的个数进行分配,一共有6个数据,而数组每行分为3列,当然可以确定数组为2行。
    (3)也可由分行给数组元素赋值

    int a[2][3]={1,2},{1,2,3}
    

    在分行赋值时,可以只对部分元素赋值

    int a[2][3]={1,2},{2,5};
    

    (4)二维数组也可以直接对数组元素赋值。

    int a[2][3];
    a[0][0]=1;
    a[0][1]=2;
    

    例1、使用二维数组保存数据

    #include "stdio.h"
    main()
    {
    	int a[2][3];
    	int x,y;
    	for(x=0;x<2;x++)
    	{
    		for(y=0;y<3;y++)
    		{
    			printf("a[%d][%d]=",x,y);
    			scanf("%d",&a[x][y]);
    		}
    	}
    	for(x=0;x<2;x++)
    	{
    		for(y=0;y<3;y++)
    		{
    			printf("%d\t",a[x][y]);
    		}
    		printf("\n");
    	}
    }
    
    展开全文
  • C语言 二维数组

    2019-10-04 12:15:12
    * C语言二维数组当作是一维数组的集合,即二维数组是一个特殊的一维数组:它的元素是一维数组。例如int a[2][3]可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素 ...

    二维数组

    1.二维数组的定义

    定义形式:类型  数组名[行数][列数]

    int a[2][3]; // 共2行3列,6个元素

     

    2.二维数组的存储

    * C语言把二维数组当作是一维数组的集合,即二维数组是一个特殊的一维数组:它的元素是一维数组。例如int a[2][3]可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素

     

    * 二维数组的存放顺序是按行存放的,先存放第一行的元素,再存放第2行的元素。例如int a[2][3]的存放顺序是:a[0][0] → a[0][1] → a[0][2] → a[1][0] → a[1][1] → a[1][2]

     

    * 再来看看在内存中的存储情况,例如int a[2][2]

    (注意:a[0]、a[1]也是数组,是一维数组,而且a[0]、a[1]就是数组名,因此a[0]、a[1]就代表着这个一维数组的地址)

    1> 数组a的地址是ffc1,数组a[0]的地址也是ffc1,即a = a[0];

    2> 元素a[0][0]的地址是ffc1,所以数组a[0]的地址和元素a[0][0]的地址相同,即a[0] = &a[0][0];

    3> 最终可以得出结论:a = a[0] = &a[0][0],以此类推,可以得出a[1] = &a[1][0]

     

    3.二维数组的初始化

    * 按行进行初始化

    int a[2][3] = { {2, 2, 3}, {3, 4, 5} };

     

    按存储顺序进行初始化(先存放第1行,再存放第2行)

    int a[2][3] = {2, 2, 3, 3, 4, 5};

     

    对部分元素进行初始化

    int a[2][3] = { {2}, {3, 4} };
    int b[3][3] = { { }, { , , 2}, {1, 2, 3}};

     

    如果只初始化了部分元素,可以省略行数,但是不可以省略列数

    int a[][3] = {1, 2, 3, 4, 5, 6};
    int a[][3] = {{1, 2, 3}, {3, 5}, {}};

    有些人可能想不明白,为什么可以省略行数,但不可以省略列数。也有人可能会问,可不可以只指定行数,但是省略列数?

    其实这个问题很简单,如果我们这样写:

    int a[2][] = {1, 2, 3, 4, 5, 6}; // 错误写法
    //如果不知道列数 第一行不知道存储多少个 就全部存在第一行 第二行就没有意义了

    转载于:https://www.cnblogs.com/zyw1991/p/4049168.html

    展开全文
  • c语言二维数组问题

    2016-09-10 10:04:39
    c语言二维数组问题
  • 主要介绍了C语言二维数组的处理实例,有需要的朋友可以参考一下
  • c语言二维数组和java二维数组的两大区别 1. 存储方式不同 直接开门见山 c语言: c语言里面的的二维数组存在栈空间中。 java: java里面的二维数组存在堆空间中。 2. 第二维不同 c语言: c语言里面的二维数组的第二...

    c语言二维数组和java二维数组的两大区别

    1. 存储方式不同

    直接开门见山

    c语言:

    c语言里面的的二维数组存在栈空间中。

    java:

    java里面的二维数组存在堆空间中。
    在这里插入图片描述

    2. 第二维不同

    c语言:

    c语言里面的二维数组的第二维必须是一样的,你可以形象的把它看做是一个由很多小矩形组成的大矩形。
    在这里插入图片描述

    java:

    java里面的二维数组的第二维长度可以是不一样的,也就是说它有可能就不是矩形。
    在这里插入图片描述

    展开全文
  • C语言二维数组转化为一维数组

    千次阅读 2019-11-08 12:13:50
    C语言二维数组转化为一维数组 #include <stdio.h> #include <stdlib.h> #define A 2 //行的长度 #define B 2 //列的长度 int main() { //定义一个二维数组 int array1[A][B]={1,2,3,4}; //定义一个一...

    C语言二维数组转化为一维数组

    #include <stdio.h>
    #include <stdlib.h>
    #define A   2  //行的长度
    #define B   2  //列的长度
    int main()
    {
        //定义一个二维数组
        int array1[A][B]={1,2,3,4};
        //定义一个一维数组
        int array2[A+B];
        //遍历所需要的变量i,j以及一维数组的角坐标地址k
        int i,j,k=0;
        printf("二维数组:\n");
        for(i=0;i<A;i++){
            for(j=0;j<B;j++){
               //将二维数组中的值一个个的存入一位素组中
               array2[k]=array1[i][j];
               //一位数组角标加一
               k++;
               printf("%d\t",array1[i][j]);
            }
            printf("\n");
        }
        //遍历一维数组
        printf("一维数组:");
        for(i=0;i<A+B;i++){
            printf("%d",array2[i]);
        }
        return 0;
    }
    
    

    运行结果

    在这里插入图片描述

    展开全文
  • 主要介绍了C语言二维数组的指针指向问题,文中不建议用二级指针来访问二维数组,需要的朋友可以参考下
  • C语言二维数组指针(指向二维数组的指针)详解

    千次阅读 多人点赞 2020-05-27 17:43:22
    如有需要,请访问C语言二维数组指针(指向二维数组的指针)详解 二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。以下面的二维数组 a 为例: int a[3][4] = { ...
  • c语言二维数组

    千次阅读 2019-05-11 14:15:33
    二维数组在内存中是由几个一维数组组成的 下面这个例题中的三个数组就相当于int ar[3][4]; 举一个例题 要求数组指针向下移动,在从数组里面向下移动,输出ar2中的第三个 在这要说明的数组的地址和数组的首元素地址的...
  • 主要介绍了C语言二维数组中的查找的实例的相关资料,需要的朋友可以参考下
  • c语言 二维数组 源码

    2013-06-08 21:12:37
    c语言 二维数组 源码
  • 今天小编就为大家分享一篇关于C语言二维数组几种常用的表示方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • java的二维数组和C语言二维数组的储存结构有什么区别?,数据结构有什么区别吗?有人说java的数组在内存中存储不是连续的,,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,817
精华内容 2,726
关键字:

c语言二维数组

c语言 订阅