C语言程序设计教程二维数组的应用优秀讲义

第9章 二维数组的应用 9.1 了解二维数组 9.2 二维数组的简单应用 9.3 利用地址和指针访问二维数组 9.4 二维数组名作函数的实参 9.5 二维数组操作中的常用算法介绍 9.1 了解二维数组 9.1.1 二维数组的用途 9.1.2 二维数组的定义 与一维数组一样,二维数组也必须先定义,然后才可以使用。定义语句的形式如下: 类型名 数组名[常量表达式1] [常量表达式2],……; 二维数组的定义形式与一维数组相似,所不同的是增加了一个用方括号括起来的常量表达式。这里常量表达式1用来指定二维数组的行数;常量表达式2用来指定二维数组的列数。由于C语言规定了数组下标值的下限一律为0,所以二维数组行下标的上限为常量表达式1的值减1;列下标的上限为常量表达式2的值减1。 前面提到的存放4名学生3门课成绩的二维数组可定义如下: int s[4][3]; 此语句表明:这是一个名为s的4行3列的二维数组;数组中一共可以存储4×3个整型数据;数组行下标的范围是0~3,列下标的范围是0~2。它在逻辑结构上可以看作以下形式的矩阵(或表格): 9.1.3 二维数组元素的引用 二维数组中的元素在逻辑上可以看作构成了一个矩阵,但在物理上仍旧占据的是一串连续的存储单元。这些元素在内存中的排列顺序是“按行”存放,即:先放第0行的元素,再放第1行的元素,依次类推。 如有定义: int x[2][3]; 则数组x在内存中的存储结构如图9-1所示: 二维数组每个元素都具有一个名字——带有双下标的变量。它的一般表示形式为: 数组名[下标表达式1][下标表达式2] 如图9-1中所标出的x[0][0]、x[0][1]、…… 这里每一维的下标都可以是整型的常量、变量或表达式。如:x[i][j]、x[0][j+1]等都是合法的。注意:C语言中二维数组元素的两个下标是分别放在两个方括号中的,不要误写成x[0,0]、x[i,j]这种非法形式。 二维数组元素的引用与一维数组相同,也能够参与同类型变量允许的所有操作。例如: scanf("%d", &x[0][0]); /* 输入 */ x[1][0]=x[0][0]; /* 赋值 */ if (x[0][0]>10) … /* 条件判断 */ 而语句:x[2][3]=0;则是错误的。因为在定义语句中限定了x数组是一个2×3的数组,其行下标最大值为1,列下标最大值为2。上述引用造成了下标越界。同样是x[2][3],初学者要注意区分它出现在定义语句中和元素引用时的不同含义。 9.1.4 二维数组的初始化 与一维数组一样,可以在定义二维数组的同时为其元素赋初值。 (1)分行给二维数组的所有元素赋初值。例如: int x[3][4]={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12} }; 这种形式比较规范和直观:最外层有一对花括号,在其内部,每一行元素的初值分别括在一对花括号中,中间用逗号分隔。 (2)分行为二维数组中部分元素提供初值。例如: int x[3][4]={ {1}, {2}, {3} }; 赋值后,x数组中各元素的值为: 1 0 0 0 2 0 0 0 3 0 0 0 显然,当某一行花括号内初值个数少于该行的元素个数时,系统自动补以初值0。又如: int x[3][4]={ {1,2}, {3,4} }; 赋值后,数组元素值为: 1 2 0 0 3 4 0 0 0 0 0 0 也就是说,当行花括号少于数组的行数时,系统自动为后面的各行补以初值0。 (3)为二维数组赋初值时省略行花括号。例如: int x[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 这里只保留了最外侧的花括号,而省略了用来界定行元素的花括号。此时,系统将按照数组元素在内存中的排列顺序,依次将数据赋给各个元素。 若数据的个数少于元素的个数,系统将自动为其赋初值0。例如: int x[3][4]={1,2,3}; 赋值后的数组元素值为: 1 2 3 0 0 0 0 0 0 0 0 0 (4)通过赋初值确定二维数组中第一维的大小。 在定义二维数组时,可以省略第1个方括号中的常量表达

c语言程序设计二维数组ppt,C语言程序设计教程二维数组的应用优秀讲义.ppt相关推荐

  1. java中字符串和数组如何比较_[Java教程]javascript中数组和字符串的方法比较

    [Java教程]javascript中数组和字符串的方法比较 0 2016-07-19 23:00:05 ×目录[1]可索引 [2]转换 [3]拼接[4]创建[5]位置 前面的话 字符串和数组有很多的 ...

  2. php判断几维数组的方法,php判断是几维数组

    php判断是几维数组的方法:首先获取需要进行判断的数组:然后使用自定义的"aL"方法实现判断数组是几维数组:最后通过"max($al)"方法获取数组的维度即可. ...

  3. excel教程自学网_188集Office零基础自学教程,教你玩转word、ppt、excel,速领取

    188集Office零基础自学教程,教你玩转word.ppt.excel,速领取「领取方式在文章最后」 Microsoft Office是一套由微软公司开发的办公软件,它为MicrosoftWindo ...

  4. 无线智能插座Arduino开发工具下载安装教程二

    如果无线智能插座Arduino开发工具下载安装教程一由于电脑系统原因安装完成而打开失败,那无线智能插座Arduino开发工具下载安装教程二就派上用场了,教程二的详细操作过程如下(注明:但影响ESP82 ...

  5. c语言二维数组 ppt,C语言二维数组与指针.ppt

    C语言二维数组与指针.ppt 好好考,全国计算机等级考试 二级C语言,第12讲 二维数组与指针,二维数组的定义 数组元素的引用及初始化 二维数组和指针 二维数组名和指针数组作为实参 二维数组程序举例 ...

  6. 二维数组七行七列C语言,C语言中级教程 再谈数组-7.ppt

    C语言中级教程再谈数组-7ppt课件 * C语言中级培训 七.再谈数组 数组的概念 是一种初级(语言级)形式的数据结构. 数组的特点 无名: 连续: 有序: 等大小: 个数固定(除了在堆上分配): 数 ...

  7. C语言 二维数组遍历 - C语言零基础入门教程

    目录 一.计算一维数组长度 二.计算二维数组长度 1.二维数组行数 2.二维数组列数 3.二维数组的元素个数 = 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C ...

  8. 二维数组在c语言中的作用,C语言中的二维数组

    1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...

  9. c语言二维数组输入数据,c语言编写程序,把下面的数据输入到一个二维数组中:...

    c语言编写程序,把下面的数据输入到一个二维数组中: 答案:3  信息版本:手机版 解决时间 2019-10-07 01:08 已解决 2019-10-06 03:19 1. 编写程序,把下面的数据输入 ...

  10. 【chatGPT】01 数组、二维数组在不同语言中的存储方式

    问:数组在C++中的存储方式是什么?Java呢?Python呢?可以举例吗? C++ 在C++中,数组是连续分配的内存单元,具有相同的类型和大小. C++会将数组的第一个元素存储在指向数组的指针中,因 ...

最新文章

  1. javascript ES6
  2. STM32F103 SPI flash操作注意事项
  3. linux 3.10 内核,升级linux内核到3.10
  4. 博士生创新能力的培养点滴
  5. 安装mq的时候,计算机用户名是中文名的解决办法
  6. 《Excel与VBA程序设计》第一章
  7. LeetCode 1534. 统计好三元组
  8. 安卓逆向_24 ( 二 ) --- frida 学习记录
  9. python3学习日志Gui编程
  10. 日期推算处理.sql
  11. 世界上手机号码最长和最短的国家
  12. 顺序表的定义和基本操作
  13. C# 一种英文日期格式转换
  14. 嵌入式了解 以及学习路线
  15. 【Project Report】基于 QP 的优化选股策略
  16. Jmeter分布式压测介绍、原理及实操(一台master-windows控制机,三台slaves-linux负载机)
  17. 软件测试(网页,脚本)入门
  18. CAS操作实际上包含了哪两个步骤?
  19. Texstudio 英文拼写检查功能出问题的解决方法
  20. Web前端——跨域问题

热门文章

  1. WBE前端笔记1:HTML中一些不熟悉的标签
  2. 2022 HTML + CSS面试题,美女吐血整理
  3. 直线方程求x坐标c语言,已知两点坐标,求直线方程、距离其中一点距离为L的某点...
  4. json的各种格式的转换
  5. 广数数控系统数据采集方案
  6. redfish_Redfish和Ansible的带外管理
  7. matlab中indo是什么意思,Matlab软件电力系统仿真应用简介
  8. .NET 常用ORM之SubSonic
  9. java坦克大战爆炸效果_Java坦克大战第一个坦克不爆炸问题
  10. 数独游戏,随机生成只有唯一解的数独表