目录

一、二维数组

二、二维数组的赋值

三、二维数组在程序中赋值


前面介绍的数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。而在很多实际问题中有很多量是多维的。而多维数组元素有多个下标,以标识他们在数组中的位置,所以也称为多下标变量。而二维以上的数组很少用到,所以接下来会介绍二维数组。

一、二维数组

二维数组的定义格式如下:

[存储类型符]        数据类型符     数组变量名[整型常量表达式1][整型常量表达式2];

与一维数组相比,二维数组不过多了个表达式,我们对二维数组可理解成一个矩阵,第一维为矩阵的行数,第二维为矩阵的列数。

二维数组引用格式如下:

数组变量名[下标1][下标2]

c语言将二维数组看作一个特殊的一维数组,他的数组元素是一个个的一维数组。

如:int a[2][3];

数组a可看成两个数组元素a[0],a[1]的一维数组;而a[0],a[1]又可看成是拥有三个int型数组元素构成的一维数组。如a[0]可看成是由数组元素a[0][0],a[0][1],a[0][2]构成的一维数组。

二、二维数组的赋值

二维数组定义时,可以对数组变量赋初始值。有两种方法:

1、分行初始化赋值

一般格式为:

[存储类型符] 数据类型 数组变量名[行常量表达式][列常量表达式]=

{{第0行初值表},{第一行初值表},...,{最后一行初值表}};

赋值规则为:将第0行初值表中的数据,依次付给第0行中的各种元素;将第1行初值表中的数据,依次赋给第一行各元素,依此类推。

例:

int a[2][3]={{1,2,3},{4,5,6}};//对数组元素全部赋值

这时a[0][0]的值便是1,a[0][1]的值便是2,依此类推。

与一维数组同样,数组中未赋值的元素默认为0.

例:

int a[2][3]={{1},{3}};//对数组元素部分赋值

这时a[0][0]的值为1,而a[0][1]的值因未赋值而为0,a[1][0]的值则为3.

一般来说二维数组中的第一维数组是可以省略的,但第二维数组则是一定不可省略的。

2、按元素在内存中的排序初始化赋值

这种方法的格式为:

[存储类型符] 数据类型 数组变量名 [行常量表达式][列常量表达式]={初值表};

赋值规则为:按二维数组中元素在内存中的排列顺序,将初值表中的数据,依次赋值给各元素。

如:

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

这是对数组元素全部赋值。

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

这是对数组元素部分赋值,且省略了第一维大小。

三、二维数组在程序中赋值

如一维数组一样,二维数组在程序中赋值也可以通过赋值语句、循环逐一赋值以及使用库函数等进行。

如,下面程序则是通过键盘输入对二维数组a各元素赋值。

int i,j,a[2][3];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);

下面通过调用memset函数吧数组a的各元素清零。

memset(a,0,6*sizeof(int));

........

C语言程序——数组(2)相关推荐

  1. C语言程序——数组(1)

    目录 一.一维数组 二.一堆数组的赋值 数组是一组同类型的数据项的有序集合,其中每个数据项称为"数组元素",这些数组元素的数据类型称为数组的"基类型",而且这些 ...

  2. Go语言程序的数组初始化

    Go语言数组初始化是最基本的编程训练.通过这个例子可以知道多维数组的初始化,需要注意的是格式. Go语言程序: // array project main.go package mainimport ...

  3. c语言 数组放空自己,DS1307 C语言程序 - ds1307怎么使用(ds1307引脚图及功能_c语言程序及典型应用电路)...

    DS1307 C语言程序 //******************************************************************** //************** ...

  4. 将一个数组中的值按逆序重新存放,编写C语言程序

    将一个数组中的值按逆序重新存放,编写C语言程序: #include<stdio.h> int main() { int a[5]={8,6,5,4,1},i,b[5]; for(i=0;i ...

  5. c语言打印数组元素_C程序打印元素差为0或1的子集数

    c语言打印数组元素 Given an array of integers, find and print the maximum number of integers you can select f ...

  6. 【头歌C语言程序与设计】字符数组

    目录 写在前面 正文 第1关:字符逆序 第2关:字符统计 第3关:字符插入 第4关:字符串处理 第5关:字符串统计 第6关:字符串排序 写在最后 写在前面 本文代码是我自己所作,本人水平有限,可能部分 ...

  7. c语言程序与设计苏小红,c语言程序设计苏小红

    <实验教学示范中心建设教材·国家精品课程主讲教材:C语言程序设计(第2版)>是一本兼具趣味性和实用性的C语言程序设计教材.全书由13章组成,内容包括:为什么要学C语言,C数据类型,简单的算 ...

  8. c语言程序做四则运算还要余数,大整数四则运算 高质量C语言程序.doc

    大整数四则运算 高质量C语言程序 设计题目: 大整数的四则运算 1. 功能简介:编写出实现大整数之间相加,相减,相乘,相除的程序,并输出计算结构. 课程设计要求:采用模块化程序设计 源程序中应有足够的 ...

  9. c语言一维数组逆序输出_剑指信奥 | C 语言之兵人来袭!

    趣乐博思剑指信奥系列 ❝ 趣乐博思剑指信奥系列,专门针对全国青少年信息学奥林匹克联赛 NOIP 而开展的专业教育方案.开设的课程有 C 语言基础,C++ 语言基础,算法设计入门与进阶,经典试题分析与详 ...

最新文章

  1. 网卡清空缓存命令_九个常用的网络命令 ,很实用!
  2. 一行代码快速搞定Flowable断点下载(上)
  3. 记Thoughtworks一次糟糕的面试
  4. ElementUI中el-radio-group使用v-model绑定是属性为String字符串类型时不回显数据
  5. 【JS 逆向百例】转变思路,少走弯路,X米加密分析
  6. 【51nod 1439】互斥对【容斥原理】
  7. 毕业五年总结(转载的别人帖子,挺励志)
  8. 光猫超级账号密码、宽带账号密码 获取
  9. 笔记本WIFI无法上网(无Internet访问权限)
  10. Oracle使用函数达到drop table if exists
  11. 十年生死两茫茫,当我们已不再年轻——焦版小李飞刀
  12. RSRP RSRQ RSSI SNR的定义
  13. 【专栏】国内外物联网平台初探(篇三:QQ物联·智能硬件开放平台)
  14. 侧扫声纳内业处理--基于HYPACK2018
  15. The SPECIALIST Lexicon API
  16. 如何分辨IP地址的类型
  17. python返回索引值_python 返回列表中某个值的索引方法
  18. 一维连续型随机变量函数的分布例题(一)
  19. JAR 文件格式的强大功能(java中jar工具的使用)
  20. 重磅!12306又双叒崩了!12306是不是世界上最复杂的系统?

热门文章

  1. 更新:持续性分析(EAP.portfolio_analysis.Persistence)
  2. iphone7到手5小时就出现黑屏
  3. 121584-52-9,6-[(3R,4R)-3-(Acetyloxy)-N,4-dimethyl-6-oxo-L-norleucine] Cyclosporin A,环孢菌素A
  4. 金融壹账通将在港交所“双重”上市,2021财年营收达41亿元
  5. 北京赚钱天津花,北漂的尽头是天津,难道这就是京津冀一体化吗
  6. 中国现代化支付系统CNAPS(China National Advanced Payment System)
  7. 给大家推荐跨平台全开源IM--野火IM
  8. 使用Linux搭建web服务器
  9. 五种内存溢出案例总结:涵盖栈深度溢出、永久代内存溢出、本地方法栈溢出、JVM栈内存溢出和堆溢出
  10. php中符号的用法,关于操作符:PHP中@符号的用法是什么?