C语言程序——数组(2)
目录
一、二维数组
二、二维数组的赋值
三、二维数组在程序中赋值
前面介绍的数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。而在很多实际问题中有很多量是多维的。而多维数组元素有多个下标,以标识他们在数组中的位置,所以也称为多下标变量。而二维以上的数组很少用到,所以接下来会介绍二维数组。
一、二维数组
二维数组的定义格式如下:
[存储类型符] 数据类型符 数组变量名[整型常量表达式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)相关推荐
- C语言程序——数组(1)
目录 一.一维数组 二.一堆数组的赋值 数组是一组同类型的数据项的有序集合,其中每个数据项称为"数组元素",这些数组元素的数据类型称为数组的"基类型",而且这些 ...
- Go语言程序的数组初始化
Go语言数组初始化是最基本的编程训练.通过这个例子可以知道多维数组的初始化,需要注意的是格式. Go语言程序: // array project main.go package mainimport ...
- c语言 数组放空自己,DS1307 C语言程序 - ds1307怎么使用(ds1307引脚图及功能_c语言程序及典型应用电路)...
DS1307 C语言程序 //******************************************************************** //************** ...
- 将一个数组中的值按逆序重新存放,编写C语言程序
将一个数组中的值按逆序重新存放,编写C语言程序: #include<stdio.h> int main() { int a[5]={8,6,5,4,1},i,b[5]; for(i=0;i ...
- c语言打印数组元素_C程序打印元素差为0或1的子集数
c语言打印数组元素 Given an array of integers, find and print the maximum number of integers you can select f ...
- 【头歌C语言程序与设计】字符数组
目录 写在前面 正文 第1关:字符逆序 第2关:字符统计 第3关:字符插入 第4关:字符串处理 第5关:字符串统计 第6关:字符串排序 写在最后 写在前面 本文代码是我自己所作,本人水平有限,可能部分 ...
- c语言程序与设计苏小红,c语言程序设计苏小红
<实验教学示范中心建设教材·国家精品课程主讲教材:C语言程序设计(第2版)>是一本兼具趣味性和实用性的C语言程序设计教材.全书由13章组成,内容包括:为什么要学C语言,C数据类型,简单的算 ...
- c语言程序做四则运算还要余数,大整数四则运算 高质量C语言程序.doc
大整数四则运算 高质量C语言程序 设计题目: 大整数的四则运算 1. 功能简介:编写出实现大整数之间相加,相减,相乘,相除的程序,并输出计算结构. 课程设计要求:采用模块化程序设计 源程序中应有足够的 ...
- c语言一维数组逆序输出_剑指信奥 | C 语言之兵人来袭!
趣乐博思剑指信奥系列 ❝ 趣乐博思剑指信奥系列,专门针对全国青少年信息学奥林匹克联赛 NOIP 而开展的专业教育方案.开设的课程有 C 语言基础,C++ 语言基础,算法设计入门与进阶,经典试题分析与详 ...
最新文章
- 网卡清空缓存命令_九个常用的网络命令 ,很实用!
- 一行代码快速搞定Flowable断点下载(上)
- 记Thoughtworks一次糟糕的面试
- ElementUI中el-radio-group使用v-model绑定是属性为String字符串类型时不回显数据
- 【JS 逆向百例】转变思路,少走弯路,X米加密分析
- 【51nod 1439】互斥对【容斥原理】
- 毕业五年总结(转载的别人帖子,挺励志)
- 光猫超级账号密码、宽带账号密码 获取
- 笔记本WIFI无法上网(无Internet访问权限)
- Oracle使用函数达到drop table if exists
- 十年生死两茫茫,当我们已不再年轻——焦版小李飞刀
- RSRP RSRQ RSSI SNR的定义
- 【专栏】国内外物联网平台初探(篇三:QQ物联·智能硬件开放平台)
- 侧扫声纳内业处理--基于HYPACK2018
- The SPECIALIST Lexicon API
- 如何分辨IP地址的类型
- python返回索引值_python 返回列表中某个值的索引方法
- 一维连续型随机变量函数的分布例题(一)
- JAR 文件格式的强大功能(java中jar工具的使用)
- 重磅!12306又双叒崩了!12306是不是世界上最复杂的系统?
热门文章
- 更新:持续性分析(EAP.portfolio_analysis.Persistence)
- iphone7到手5小时就出现黑屏
- 121584-52-9,6-[(3R,4R)-3-(Acetyloxy)-N,4-dimethyl-6-oxo-L-norleucine] Cyclosporin A,环孢菌素A
- 金融壹账通将在港交所“双重”上市,2021财年营收达41亿元
- 北京赚钱天津花,北漂的尽头是天津,难道这就是京津冀一体化吗
- 中国现代化支付系统CNAPS(China National Advanced Payment System)
- 给大家推荐跨平台全开源IM--野火IM
- 使用Linux搭建web服务器
- 五种内存溢出案例总结:涵盖栈深度溢出、永久代内存溢出、本地方法栈溢出、JVM栈内存溢出和堆溢出
- php中符号的用法,关于操作符:PHP中@符号的用法是什么?