admin 管理员组文章数量: 1184232
2024年4月21日发(作者:多语言在线客服系统源码)
软件2013年第34卷第7期 S0FTWARE 国际IT传媒品牌
C语言中二维数组的输出样式辨析
刘培元
(江苏省如皋中等专业学校,江苏如皋226500)
摘 要:二维数组的定义与输出样式,是广大编程爱好者学习C语言过程中常常遇到的一个易混淆的知识点。本文通过将相
近概念置于不同情境,进行意义辨析,帮助读者厘清二者的关系。
关键词:C语言;二维数组;行;列;输出样式
中图分类号:TP312.1 文献标识码:A DOI:10.3969/j.issn.1003—6970.2013.07.048
本文著录格式:【i】刘培元.C语言中二维数组的输出样式辨析Ⅱ】.软件,2013,34 :136—137
O引言
如何在一维存储器中存放二维数组?在c语言中,将二维
数组作为按行存放,即放完一行之后放入第二行,以此类推。例
情境描述:定义一个二维数组im a[3]阡{1’3,5 I’8 },
如:二维数组a【3】【4】,先存放a[OJ行的四个元素:a【0】【0La[O】
该数组为3‘‘f亍”4‘‘歹IJ”,共12个元素,.分别为:
【11,a[Ol[2l,a[Ol[3】,再存放alll行的四个元泰a[1l[ol,a[1111],all】
【2】,a[1113J,最后存放a[2】行的四个元素:aI2儿OLa[21[1],a[2】
【2】,a[2ll3]。即这12个元素在内存中的存储为:
为什么可以输出为4行3列的样式'
a[o]【0]
a[0j[1]
a[0][2]
gt[0][3]
a[1][o3
a[1][I]
1二维数组的基本知识
a[1][2]
a[I][3]
1.1二维数组的定义
a[2][O]
二维数组定义的一般形式是:
a[2][1]
a[2][2]
类型说明符数组名f常量表达式1】【常量表达式2】
a[2][3]
其中“常量表达式1”表示第一维下标的长度,“常量表达
式2”表示第二维下标的长度。
通常情况下,我们习惯书写成:
例如:
a[0][0],a[0][1],a[0][2],a[0][3]
int a【31【4】;
a[1¨0],a[1][1],a[1]f2],al1][3]
即定义了一个二维的数组,数组名为a;其元素的数据类型
a[2_J[0J,a[2][1],a[2_j[2],a[2][3]
为整型;第一维下标的长度是3,第二维下标的长度是4;该数
这里的按行存储的“行”实际上是“第一维”的意思,不
组共有12个元素,通常写成容易接受的形式:
是几何意义上的“行”。
a[O][Ol,a【O】【1】,a[O][2l,a【O】【3】
a[1l[O],a[1][1l,a【1】【2】,a[1l[3】
2二维数组的输出样式
af2】【OJ,a[2][1l,a[21121,a[21131
2.1 main{)
1。2二维数组的存储
{int i,j,a[31[41={1,3,5,7,2,6,9,8,0,4,6,2};
二维数组在概念上是二维的,其下标在两个方向上变化。
for【i=O;i<2;i++)
但是,存储器却是一维连续编址的,也就是说存储器单元是按
{f0r0=0;j<3.j++)
一
维线性排列的。
printI(“%2d”,aIil[j]);
软件杂志欢迎推荐投稿:zaz ̄@lS8.corn
136
软件 (您的文章得到院士的关注) 刘培元:C语言中二维数组的输出样式辨析
pnnff(“\n”); //换行
在日常生活中,横向(水平方向)为行,纵向(垂直方向)
}
为列,是几何意义上的行和列。
}
在前面的“二、二维数组的输出样式”中:
说明:以数组的第一维下标为主、第二维下标为辅输出,
第一种输出样式为3行4列
第一维下标变化时换行。
2.2 main()
{int i,j,a【3】【4】={1,3,5,7,2,6,9,8,0,4,6,2};
f0r(i=0.i<2;i++)
{f0r0=0.j<3;j++)
第二种输出样式为1行12列
pnnff(“%2d”,a【i】【j】);
//无换行
}
}
第三种输出样式为4行3列
说明:以数组的第一维下标为主、第二维下标为辅输出,
第一维下标变化时无换行。
2.3 main()
第四种输出形式为1行12列
{int i,j,a【3】【4】={1,3,5,7,2,6,9,8,0,4,6,2};
f0r【i=0;i<4;i++)
{for(j=0;j<3;j++)
pnnff(“%2d”,a叫【i】】;
pnnff(“\n”); //换行
4总结
}
通常情况下,我们定义了一个二维数组int a[3114】,该数
}
组的第一维下标为3,第二维下标为4。习惯上称数组a是一个
说明:以数组的第二维下标为主、第一维下标为辅输出,
3“行”4“列”的数组,这是基于该数组在内存中是按行存储
第二维下标变化时换行。
的原理而表述的(它在内存中存放的顺序为a【0l【0】、a【0】【1】、
2.4 void mainO
a【01【2】、a[Ol[3]、a【1】IO1、a【1】【1】、a[1][21、a[11131、a【2】【0】、
{int i,j,a【3儿4J={1,3,5,7,2,6,9,8,0,4,6,2};
a【2】f1】、a【2】【2]、a【2】f3D。这里的“行”,准确地说是“第一
for(i=2;i>=O;i~)
维下标”,不是几何意义上的“行”。
{for(j=3;j>=O;j一)
二维数组的输出样式多种多样,可以说千变万化。程序的
pnnff(“%2d”,a【i】【j】);
输出结果是几行几列,由实际代码决定。,这里的“行”,准
//无换行
确地说是几何意义上的“行”。前面“二、二维数组的输出样式”,
}
就是例证。
综上所述:定义一个二维数组int a【3】【4】,该数组的
第一维下标为3,第二维下标为4。习惯上称数组a是一个
3“行”4“列”的数组,这里的“行”和“列”是“第一维下标”
和“第二维下标”的意思,不是几何意义上的行和列。该数组
说明:以数组的第一维下标为主、第二维下标为辅输出,
实际的输出样式是几行几列是由实际的代码处理得到的,这里
第一维下标变化时无换行。
的行和列是几何意义上的行和列,也就是通过屏幕输出得到的。
3日常生活中的行和列
这是两个不同情境下的“行”,不是一个意义,更不能混为一谈。
137・ 软件杂志欢迎推荐投稿:http://www.ccomsoft.corn/
版权声明:本文标题:C语言中二维数组的输出样式辨析 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713673367a646379.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论