C语言入门(九)二维数组

简介: C语言入门(九)二维数组

比如存储一个班50名同学的6门课的成绩需要使用二维数组,二维数组显而易见就会有行和列的存在。


对于成绩来说,我们可以50行代表50个同学,6列代表6门课的成绩。当然也可以反过来6行50列。


   比如我定义一个二维数组int a[3][3],那么它的数组元素就会有9个,分别是a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][3]、a[2][0]、a[2][1]、a[2][2]。


定义和引用

定义


   一般形式为:

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

  与一维数组相比,除了增加一个常量表达式以外,其他都一样。


  我们规定,常量表达式1为行数,常量表达式2为列数。


注意:


   ①表示行数和列数的常量表达式必须在两个中括号内,不能写成int a[1,2]。

   ②二维数组在内存中是按行存放,即在内存中先存放第一行的元素,再存放第二行的元素。

   ③对于二维数组我们也可以看成由一维数组组成,比如a[4][3],我们就可以看成由a[0]、a[1]、a[2]、a[3]4个数组元素组成的数组。它们其中各有三个元素。


引用


   形式:

           数组名[行下标][列下标];


二维数组的元素与一维数组的元素一样可以参加表达式运算。


初始化


   形式:

           类型名 数组名[行数][列数] = {初值表};


比如给下面的二维数组初始化


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


也可以写成int a[2][3] = {1,2,3,4,5,6};


   对二维数组的部分元素赋初值: int a[2][3] = {{1},{2}};则只会给a[0][0],a[1][0]赋值,其他默认为0。

   但如果写成int a[2][3] = {1,2};则是给a[0][0],a[0][1]赋值,其他值默认为0,这种不加每一行中括号的写法,系统会按照顺序给他赋值。


注意:定义二维数组时,行数可以省略,但列数绝不能省略!

目录
相关文章
|
1月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
49 2
|
1月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
27 1
|
1月前
|
存储 编译器 C语言
【C语言】数组(一维、二维数组的简单介绍)
【C语言】数组(一维、二维数组的简单介绍)
|
1月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
2月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
2月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第六章 数组_一维数组_二维数组_字符数组详解
本章介绍了C语言中的数组概念及应用。数组是一种存储同一类型数据的线性结构,通过下标访问元素。一维数组定义需指定长度,如`int a[10]`,并遵循命名规则。数组元素初始化可使用 `{}`,多余初值补0,少则随机。二维数组扩展了维度,定义形式为`int a[3][4]`,按行优先顺序存储。字符数组用于存储字符串,初始化时需添加结束符`\0`。此外,介绍了字符串处理函数,如`strcat()`、`strcpy()`、`strcmp()` 和 `strlen()`,用于拼接、复制、比较和计算字符串长度。
|
3月前
|
C语言
C语言------程设设计入门
这篇文章是C语言程序设计的入门教程,涵盖了C程序的实现过程、VC集成开发环境的使用、基本数据类型的使用、格式控制字符的作用,以及通过示例代码演示了如何使用printf()函数输出不同类型的数据。
C语言------程设设计入门
|
4月前
|
存储 Java C语言
【C语言入门】初识C语言:掌握编程的基石
【C语言入门】初识C语言:掌握编程的基石
66 4
【C语言入门】初识C语言:掌握编程的基石
|
3月前
|
NoSQL Java 编译器
C语言从入门到精通该怎样学?
持续学习与实践:编程是一门需要不断学习和实践的技能,要保持对新技术和新知识的敏感性,并持续进行编程实践。
54 1
|
4月前
|
存储 Java 程序员
【C语言入门】C语言入门:探索编程世界的基础概念
【C语言入门】C语言入门:探索编程世界的基础概念
103 2