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)
上一篇 2022年7月27日 下午6:36
下一篇 2022年7月27日 下午6:36


相关推荐

  • 数据库-PDMan使用教程

    数据库-PDMan使用教程文章目录 PDMan 简介使用下载安装创建新模块开始菜单栏设置功能数据库连接同步数据到数据库 PDMan 简介 PDMan 是一款数据库建模工具 国产开源易用 支持常用的 MySQL Oracal 等数据库 具体信息查看官网 http www pdman cn 使用下载安装下载完成后 一路安装即可 安装完成后 打开软件是如下界面 创建新模块点击下图左侧新建模块建好模块后 在数据表下 新

    2026年3月16日
    1
  • MYSQL常用函数总结

    MYSQL常用函数总结第一部分 MYSQL 中常用的函数 PS 总结的有点潦草 适合有一定基础的总结性学习 一 排序函数 RANK 1 1 3 在计算排序时 若存在相同的位次 会跳过之后的位次 DENSE RANK 1 1 2 在计算排序时 若存在相同的位次 不会跳过之后的位次 ROW NUMBER 1 2 3 这个函数赋予唯一的连续位次二 日期函数 DATEDIFF data1 date2 date1 date2DATE FORMAT date format 日期格式转换 TI

    2026年3月17日
    2
  • MySQL 8.0.19安装教程(windows 64位)

    MySQL 8.0.19安装教程(windows 64位)话不多说直接开干目录1-先去官网下载点击的MySQL的下载​2-配置初始化的my.ini文件的文件3-初始化MySQL4-安装MySQL服务+启动MySQL服务5-连接MySQL+修改密码 先去官网下载点击的MySQL的下载 下载完成后解压解压完是这个样子 配置初始化的my.ini文件的文件 …

    2022年4月28日
    47
  • Tiled 编辑地形后 输出简化

    Tiled 编辑地形后 输出简化做 2d 游戏 用 Tiled 编辑地形信息 另存为 json 后信息太复杂 这里简单将地形输出 第一个是 html 文件浏览器打开将 tiled 输出的 json 导入 会自动生成一个原文件名 Cut json 的文件里面只有地形 想另行定义就改红色字体部分即可 lt doctypehtml gt lt htmllang en gt lt head gt nbsp nbsp lt me

    2026年3月17日
    2
  • ssh脚本自动登录怎么回事_自动注册账号app脚本

    ssh脚本自动登录怎么回事_自动注册账号app脚本ssh脚本登录1.什么是ssh指纹使用/etc/ssh/ssh_host_rsa_key.pub公钥加密生成的字符串,用来校验或验证连接的远程主机2.如何使用脚本登录ssh方案1:使用expectspawnsshroot@172.16.16.7-p36000expect”*Areyousureyouwanttocontinueconnecting(ye…

    2025年6月19日
    5
  • GPT Codex怎么用?国内如何使用?最全CLI使用教程与高效技巧

    GPT Codex怎么用?国内如何使用?最全CLI使用教程与高效技巧

    2026年3月16日
    2

发表回复

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

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