C语言3×3二维数组_什么是二维数组

C语言3×3二维数组_什么是二维数组C语言目录C/C++学习资源(百度云盘链接)计算机二级资料(过级专用)C语言学习路线(从入门到实战)编写C语言程序的7个步骤和编程机制C语言基础-第一个C程序C语言基础-简单程序分析VS2019编写简单的C程序示例简单示例,VS2019调试C语言程序C语言基础-基本算法C语言基础-数据类型C语言中的输入输出函数C语言流程控制语句C语言数组——一维数组二维数组前面介绍了…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

C语言目录

C/C++学习资源(百度云盘链接)
计算机二级资料(过级专用)
C语言学习路线(从入门到实战)
编写C语言程序的7个步骤和编程机制
C语言基础-第一个C程序
C语言基础-简单程序分析
VS2019编写简单的C程序示例
简单示例,VS2019调试C语言程序
C语言基础-基本算法
C语言基础-数据类型
C语言中的输入输出函数
C语言流程控制语句
C语言数组——一维数组

二维数组

前面介绍了一维数组,接下来介绍如何定义和使用二维数组。

二维数组定义的一般形式如下:

类型说明符 数组名[常量表达式1][常量表达式2]

与一维数组的定义唯一的不同是多了一个常量表达式2,其中,常量表达式1为第一维的长度,常量表达式2为第二维的长度。通常在处理二维数组的时候,为了便于理解,都将数组视为一个矩阵,常量表达式1表示矩阵的行数,而常量表达式2表示矩阵的列数。与一维数组一样,在定义二维数组时,常量表达式同样不能为变量。下面先通过一段代码来看二维数组的定义。

#include<stdio.h>

#define M 4
#define N 3


int main() { 
   
  int arr[M][N];
  for (int i = 0; i < M; i++)
  { 
   
    for (int j = 0; j < N; j++)
    { 
   
      printf("&arr[%d][%d]=%d\t", i, j, &arr[i][j]);
    }
    printf("\n");
  }
  return 0;
}

运行结果:
在这里插入图片描述
将二维数组arr视为一个矩阵,下图显示了数组中每个元素在矩阵中的存放位置。
image.png
数组中各个元素在矩阵中对应的位置由二维数组的两个下标决定。我们可以将定义的二维数组int arr[4][3]视为由arr[4]和int [3] 两部分构成,将arr[4]视为一个整型一维数组,其中含有4个元素arr[0]、arr[1]、arr[2]、arr[3],每个元素都是int[3]类型的,也就是说,每个元素又是一个一维数组,每个一维数组含有3个元素,如arr[0]含有arr[0][1]、arr[0][1]、arr[0][2]三个元素。

知道了二维数组的这种特殊结构之后,接下来通过下图来了解二维数组在内存中的存储结构。
image.png
通过上述二维数组在内存中的存储结构图可以发现,二维数组中的所有元素都存储在一片连续的内存单元中,所占用的内存大小为元素类型所占用的内存大小乘以第一维及第二维的长度。如果以矩阵的方式来分析二维数组的存储方式,那么先从矩阵第一行从左往右依次存储完所有元素,然后按照同样的方法存储第二行的所有元素,直到存储完所有数组元素为止。

接下来再看一个二维数组的示例:

任意输入一个3行3列的二维数组,求对角元素之和

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main() { 
   
  int arr[3][3];
  int i, j, sum = 0;
  printf("please input:\n");
  for (i = 0; i < 3; i++)
  { 
   
    for (j = 0; j < 3; j++)
    { 
   
      scanf("%d", &arr[i][j]);
    }
  }
  for (i = 0; i < 3; i++)
  { 
   
    for ( j = 0; j < 3; j++)
    { 
   
      if (i==j)
      { 
   
        sum += arr[i][j];
      }
    }
  }
  printf("the result is: %d\n", sum);
  return 0;
}

运行结果如下:
在这里插入图片描述
关于以为数组就介绍到这,后面继续更新。。。

如果您觉得本篇文章对您有帮助,请转发给更多的人
C语言中文社区】是一个C语言视频教程、学习笔记、电子书、计算机二级资料等专注于C语言编程学习者的干货知识分享平台,精选深度文章,分享优秀干货类、技能类的学习资源,帮助学习中的你。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157410.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux网络配置出现E325,linux下vi操作出现E325: ATTENTION的解决方法

    linux网络配置出现E325,linux下vi操作出现E325: ATTENTION的解决方法MyBatis,动态传入表名,字段名的解决办法转载:http://luoyu-ds.iteye.com/blog/1517607今天做项目,遇到的问题就是需求修改数据表的记录,而且字段名都不是固定的,也就是说是需要通过参数传入的,本来这也不是…JavaScript–事件模型(转)在各种浏览器中存在三种事件模型:原始事件模型(originaleventmodel),DOM2事件模型…

    2022年5月19日
    41
  • linux中查看java进程的命令_linux查看进程grep

    linux中查看java进程的命令_linux查看进程grep[root@vm-linux-x86~]#ps-ef|grepjavaroot   4834  1 2Jun10pts/6  03:10:50/opt/JDK/jdk1.6.0_21/bin/java-classpath/opt/JReport/Server_B201106081302/derby/lib/*:/opt/JReport/Server_B2

    2022年8月23日
    6
  • zero based budgeting_monetdb

    zero based budgeting_monetdbMcObjectODBCimplementsmostoftheODBC3.0standardsexcept‘descriptors’, whicharesupplementary.Currently,theMcObjectODBCdriverreturns“02.00”asthe driverversion.OpenaDOSCMD.EX

    2022年10月14日
    3
  • 运行时常量池与字符串常量池_字符串常量池在堆中还是方法区

    运行时常量池与字符串常量池_字符串常量池在堆中还是方法区文章目录一、概念1、Class常量池(ClassConstantPool)1.1、常量池中数据项类型2、字符串池(StringPool、StringLiteralPool)2.1、参考文章:3、运行时常量池(RuntimeConstantPool)4、总结二、方法区的class文件信息,class常量池和运行时常量池的三者关系2.1、三者关系图:2.2、方法区class文…

    2022年7月28日
    8
  • hql删除mysql语句_hibernate — HQL语句总结

    hql删除mysql语句_hibernate — HQL语句总结本章介绍了Hibernate的几种主要检索方式:HQL检索方式、QBC检索方式、SQL检索方式。HQL是HibernateQueryLanguage的缩写,是官方推荐的查询语言。QBC是QueryByCriteria的缩写,是Hibernate提供的一个查询接口。Hibernate是一个轻量级的框架,它允许使用原始SQL语句查询数据库。1.1HQL基础HQL是Hiberante官方推荐的…

    2022年6月24日
    32
  • SSM项目结构

    SSM项目结构SSM:Spring、SpringMVC和Mybatis,Spring是一个开源框架,用来解耦,方便实MVC;SpringMVC分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制;MyBatis是一个基于Java的持久层框架,包括SQLMaps和DataAccessObjects(DAO),对数据库进行操作。SSM的项目结构:

    2022年6月17日
    91

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号