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语言从放弃到入门课程
课程目标16天,每天6节课,每节40分钟课堂实录,带你征服C语言,让所有学过和没有学过C语言的人,或是正准备学习C语言的人,找到学习C语言的不二法门。适用人群所有学过和没有学过C语言的人,或是正准备学习C语言的人!
25 2
王桂林C语言从放弃到入门课程
|
1月前
|
存储 数据处理 C语言
C语言二维数组
C语言二维数组
16 0
|
1月前
|
存储 编译器 C语言
初识C语言——详细入门(系统性学习day4)
初识C语言——详细入门(系统性学习day4)
|
1月前
|
C语言
【C语言】利用数组处理批量数据(一维数组和二维数组)
【C语言】利用数组处理批量数据(一维数组和二维数组)
|
1月前
|
存储 自然语言处理 编译器
C语言从入门到实战——编译和链接
在C语言中,编译和链接是将源代码转换为可执行文件的两个主要步骤。 编译过程包括以下步骤: 1. 预处理:将源代码中的预处理指令(如`#include`和`#define`)替换为实际的代码。 2. 编译:将预处理后的代码转换为汇编语言。 3. 汇编:将汇编语言转换为机器码指令。 链接过程包括以下步骤: 1. 目标文件生成:将每个源文件编译后生成的目标文件(`.o`或`.obj`)进行合并,生成一个总的目标文件。 2. 符号解析:查找并解析目标文件中的所有符号(例如全局变量和函数名),以确保每个符号都有一个唯一的地址。 3. 地址重定位:根据符号表中符号的地址信息,将目标文件中的所有地址引用
42 0
|
1月前
|
编译器 程序员 C语言
C语言从入门到实战——动态内存管理
在C语言中,动态内存管理是指程序运行时,通过调用特定的函数动态地分配和释放内存空间。动态内存管理允许程序在运行时根据实际需要来分配内存,避免了静态内存分配在编译时就确定固定大小的限制。
45 0
|
1月前
|
编译器 Linux PHP
C语言从入门到实战——预处理详解
C语言预处理是C语言编译过程的一个阶段,它在编译之前对源代码进行一系列的处理操作,包括宏替换、文件包含、条件编译等,最终生成经过预处理的代码,然后再进行编译。
46 0
|
1月前
|
存储 缓存 C语言
C语言从入门到实战——文件操作
C语言中的文件操作是通过使用文件指针来实现的。可以使用标准库中的函数来打开、读取、写入和关闭文件。
53 0
|
4天前
|
存储 自然语言处理 编译器
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
|
29天前
|
Java C语言 C++
C语言由入门到精通(1)介绍与数据类型
C语言由入门到精通(1)介绍与数据类型