iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >从头学习C语言之二维数组
  • 854
分享到

从头学习C语言之二维数组

2024-04-02 19:04:59 854人浏览 薄情痞子
摘要

目录二维数组:语法:二维数组存放方式:二维数组的访问:二维数组的初始化:示例:总结二维数组: 引入一个想法: 一个变量:相当于一个点。 一维数组(也就是数组):点汇聚成为一条直线。

二维数组:

引入一个想法:
一个变量:相当于一个点。
一维数组(也就是数组):点汇聚成为一条直线。
二维数组:直线汇聚成一个平面。
三维数组:平面汇聚成立体图形。

语法:

类型 数组名[常量表达式][常量表达式]

  • int a[6][6];//6*6,6行6列
  • char b[4][5];//4*5,4行5列
  • double c[6][3];//6*3,6行3列

二维数组存放方式:

在这里插入图片描述

二维数组的访问:

  • 数组名[下标][下标]
  • a[0][0];//访问a数组中第一行第一列的元素
  • b[1][3];//访问b数组中第二行第四列的元素
  • c[3][3];访问c数组中第四行第四列的元素
  • 同样要注意下标的取值范围,以防止数组的越界访问。
  • —比如int a[3][4],其“行下标”的取值范围是0 ~ 2,“列下标”的取值范围是 0 ~ 3,超出任何一个下标的访问都是越界访问。(非常容易中招

二维数组的初始化

  • 二维数组在内存中是线性存放的,因此可以将所有的数据写在一个花括号内:
  • int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
  • 为了更直观的表示元素的分布,可以用大括号将每一行的元素括起来:
  • int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
  • 或者
  • int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
  • 二维数组也可以仅对部分元素赋初值:
  • int a[3][4]={{1},{5},{9}};
  • 如果希望整个二维数组初始化为0,呢么直接在大括号里写一个0即可:
  • int a[3][4]={0};
  • C99同样增加了一种新特性:指定初始化的元素。这样就可以只对数组中的某些指定元素进行初始哈赋值,而未被赋值的元素自动初始化为0:
  • int a[3][4]={[0][0]=1,[1][1]=2,[2][2]=3};
  • 二维数组的初始化也能偷懒,让编译器根据元素的数量计算数组的长度。但只有第1维的元素个数可以不写,其他维度必须加上:
  • int a[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

示例:

例一:二维数组的舒服写法:

   #include<stdio.h>
   int main()
   {
     int a[3][4]={
       {1,2,3,4},
       {5,6,7,8},
       {9,10,11,12}
     };
     int i,j;
    for(i=0;i<3;i++)
    {
      for(j=0;j<4;j++)
      {
        printf("%d ",a[i][j]);
      }
     printf("\n");
     }
  printf("\n");
    return 0;
  }  

例二:对前三行每一行的第一个元素赋初值,其他没有被赋值的自动补充为0:

   #include<stdio.h>
   int main()
   {
     int a[3][4]={{1},{2},{5}};
     //把前三行每一行的第一个元素赋初值,其他没有被赋值的自动补充为0。
   //如果赋值的数,多于三个,后面的会报错,并且自动不算数。
     //如果没有对数组进行赋值,则得出的结果为随机数。
    int i,j;
    for(i=0;i<3;i++)
    {
    for(j=0;j<4;j++)
      {
        printf("%d ",a[i][j]);
      }
      printf("\n");
   }
    return 0;
  }  
 

例三:指定数组元素,其他元素自动补充为0:

   #include<stdio.h>
   int main()
   {
     int a[3][4]={[2][3]=1,[2][1]=8,[1][2]=5};
     int i,j;
     for(i=0;i<3;i++)
     {
       for(j=0;j<4;j++)
       {
        printf("%d ",a[i][j]);
      }
      printf("\n");
    }
    return 0;
  }  

例四:证明只有第一维可以不写数值:

   #include<stdio.h>  
   int main()  
   {  
     int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};//只有第一维可以不写
     int i,j;
    for(i=0;i<3;i++)
     {
       for(j=0;j<4;j++)
       {
        printf("%d ",a[i][j]);
      }
    printf("\n");
   }
    return 0;
  }  

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!   

--结束END--

本文标题: 从头学习C语言之二维数组

本文链接: https://www.lsjlt.com/news/163933.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 从头学习C语言之二维数组
    目录二维数组:语法:二维数组存放方式:二维数组的访问:二维数组的初始化:示例:总结二维数组: 引入一个想法: 一个变量:相当于一个点。 一维数组(也就是数组):点汇聚成为一条直线。 ...
    99+
    2022-11-13
  • 从头学习C语言之指针和数组
    目录指针和数组:示例:总结指针和数组: 数组名其实是数组第一个元素的地址。 %p用来打印地址,为十六进制 &:取址操作符 如果用一个指针指向数组,应该怎么做呢? char ...
    99+
    2022-11-13
  • 从头学习C语言之if语句的使用
    目录if语句:if语句的三种基本形式。1示例2.示例3.示例课堂实践环节:总结if语句: 作用: 构成分支结构。(它根据给定的条件进行判断,以决定执行某个分支程序段。) if语句的三...
    99+
    2022-11-13
  • 从头学习C语言之字符串处理函数
    目录字符串处理函数:存放和使用字符串:获取字符串长度:strlen示例:拷贝字符串:strcpy和strncpy示例:strncpy:示例:连接字符串:strcat和strncat示...
    99+
    2022-11-13
  • c语言学习之数组3
    #include <stdio.h>int main(){  char cArr[] = {'I', 'L', 'O', 'V', 'E', 'C'};  char sArr[] = "ilovec";  int i = siz...
    99+
    2023-01-31
    数组 语言
  • 从头学习C语言之for语句和循环嵌套
    目录for语句:前言:注意事项:语句形式:执行顺序:示例:循环嵌套:语句形式:流程图:示例:总结for语句: 前言: 循环的基本结构离不开三个基本动作: 初始化计数器循环条件更新计数...
    99+
    2022-11-13
  • 从头学习C语言之switch语句和分支嵌套
    目录switch 语句:注意事项:分支结构的嵌套:注意事项:语句形式:流程图:示例:总结switch 语句: 一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一...
    99+
    2022-11-13
  • C语言算法练习之求二维数组最值问题
    目录一、问题描述二、算法实例编译环境三、算法实例实现过程3.1、包含头文件3.2、定义宏和声明数组3.3、声明相关变量3.4、输入数组(方阵)的阶3.5、输出 “输入的数...
    99+
    2022-11-13
  • C语言二维数组应用之扫雷游戏
    本文实例为大家分享了C语言实现扫雷游戏的具体代码,供大家参考,具体内容如下 上次用数组完成了一个井字棋,接下来用数组完成一个简易版扫雷。 《扫雷》是一款大众类的益智小游戏,于1992...
    99+
    2022-11-13
  • C语言二维数组应用之井字棋游戏
    本文实例为大家分享了C语言实现井字棋游戏的具体代码,供大家参考,具体内容如下 数组是C语言中一种重要的数据类型,接下来我和大家分享用二维数组完成一个井字棋游戏。 井字棋,是一种在3*...
    99+
    2022-11-13
  • c语言二维数组怎么定义
    在C语言中,定义二维数组可以使用以下语法: 数据类型 数组名称[行数][列数]; 例如,定义一个3行4列的整数类型二维数组,可以使用...
    99+
    2023-10-27
    c语言
  • c语言二维数组怎么赋值
    C语言中,可以通过循环和下标操作来给二维数组赋值。下面是一个示例:```c#include int main() {int arr[...
    99+
    2023-08-31
    c语言
  • C语言新手练习之多维数组、结构体及函数
    1887 颜色精简 题目: 有一个颜色集合,里面有若干个颜色值(RBG系统表示)。现在有若干个颜色值需要映射到集合中的某个值。具体的映射方法是找到集合中和它的颜色距离最小的进行映射。...
    99+
    2022-11-12
  • C语言学习之函数知识总结
    目录前言一、引入二、认识函数三、函数的作用四、函数的返回值五、定义函数六、函数的类型七、return语句与break语句的区别八、函数的分类九、主函数十、函数使用举例十一、函数的声明...
    99+
    2022-11-13
  • c语言二维动态数组怎么定义
    在C语言中,定义一个二维动态数组可以使用指针的指针来实现。下面是一个示例代码: #include #include int m...
    99+
    2023-10-27
    c语言
  • c语言二维数组指针如何表示
    在C语言中,可以使用指向二维数组的指针来表示二维数组。 假设有一个二维数组arr,声明并初始化如下: int arr[3][4] =...
    99+
    2023-10-27
    c语言
  • c语言怎么随机生成二维数组
    在C语言中,我们可以使用rand()函数来生成随机数,然后将生成的随机数填充到二维数组中。以下是一个随机生成二维数组的示例代码: #...
    99+
    2023-10-27
    c语言
  • C语言之关于二维数组在函数中的调用问题
    目录关于二维数组在函数中的调用问题函数调用二维数组 二维数组如何放到函数中使用下面以一个二维矩阵的转置为例关于二维数组在函数中的调用问题 之前在学习二维数组的时候感觉理解起...
    99+
    2022-11-13
  • C语言数组学习之特殊矩阵的压缩存储
    目录1.数组的定义数组与线性表的关系2.数组的存储结构习题13.对称矩阵概念存储方法选择习题1习题24.三角矩阵概念存储方法选择5.三对角矩阵概念存储方法选择习题16.稀疏矩阵概念存...
    99+
    2022-11-12
  • C语言练习之数组中素数交换
    目录题目要求总结题目要求 (1)在主函数中创建数组num,使用测试数据{108 4 19 7 23 66 49 13 33 35}对其初始化; (2)定义change函数,将num数...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作