- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数组 C语言编程入门
前面使用字符型、整型的、浮点型的数据都是属于基本数据类型。C语言还提供了一些扩
展的数据类型,这类数据是基本数据类型的扩展。它们也被称做聚集类型,或复合类型,或构
造数据类型。这些按一定规则构成的数据类型有:数组、结构、指针、联合、位域等。
数组是按序排列的相同类型的变量的集合。换言之,数组数据是用同一个名字的不同下
标访问的,数组的下标是放在方括号中,从零开始的有序下标,它们是0、1、2、3……。数组
有一维、二维、三维、多维数组,常用的有一维、二维和字符串数组。
1.一维数组
(1) 定义形式
类型说明符 数组合 [整型表达式];
例如:char ch [10];
定义了ch一维数组,它有10个元素,每个元素都是字符型的。
数组的读法是:先读数组名,再读它方括号内元素的个数,最后读它里面元素的数据类型
。
数组中,每个元素是利用不同下标来表示的。比如:ch数组中的10个元素分别是:ch [0
]、ch [1]、ch [2] 一直到ch [9] 。代表第一个元素,ch [9]代表第十个元素。
(2) 数组的初始化
数组中的值,可以在程序运行期间用赋值语句或键盘输入语句来赋值,而一般是用一个
循环语句来赋值。
所谓数组初始化就是在定义说明数组的同时给数组赋新值。这项工作是在程序编译中
完成的。
C中规定 (比如UNIX C和Microsotf C中只有在静态存储static数组和外部存储(exter
n)数组才可以初始化。比如要给一个局部数组初始化,要指定存储类别为static才成,否则
编译不能通过。而在ANSI C中无此规定。
例如:
static int n [3] ={23,26,15} ;
如果对数组中全部元素赋初值,可不指定数组长度。等同如下定义:
static int n [ ] ={23,26,15} ;
例: 产 生 前 15 个 裴 波 纳 契 (Fibonacci) 数,裴波纳契数列的开头两项为0和1
,以后的每项是前两项的和 (an=a (n-2) +a (n-1) )。
f8_1.C
main ( )
{
int f [15] , i;
f[0] =0;
f[1] =1;
for (i=2; i15; ++i)
/*产生Fibonacci数列 */
f [i] =f [i-2] +f [i-1] ;
for (i=0;i15; ++i)
/*显示Fibonacci数列 */
printf ( %-8d\m , f [i] ) ;
/* -8为八位左对齐 */
}
程序执行后屏幕显示:
0
1
1
2
3
5
8
1 3
2 1
3 4
5 5
8 9
1 4 4
2 3 3
3 7 7
2.二维数组
定义形式如下:
类型说明符 数组名 [整型 表 达 式] [整型表达式] ;
例如:int n [3] [6] ;
定义了二维数组n, 它有三行六列共18个整型元素。
二维数组的存取顺序是:按行存取,先存取第一行元素的0列、1列、2列一直到最一列,
然后返回到第二行的开始,再存取第二行元素的0列、1列、2列一直到最后一列。按这样的
顺序再存取第三行、第四行一直到最后一行的最后一列元素。这个顺序与内存中存储顺序
是一致的。
例1.初始化一个整型二维数组
static int n [3] [6] = {15, 20, 32, 44, 56, 67, 77, 87, 93, 100, 102,
120, 130, 14, 15, 16, 17, 18} ;
二维数组n在内存中是按行、列矩阵存放数据的。数组n初始化后可用一个二维表来说
明,二维数组n有三行六列共18个元素。见下面二维表:
@@03L14500.GIF;图1@@
表中顶行的0、1、2、3、4、5表示数组有6列;竖直方向的0、1、2表示数组有3行。
二维数组的行、列均是从零开始顺序排列,是先存放0行的六列。从数组内取数也是这
个顺序。
例2.初始化一个字符型二维数组
@@03L14501.GIF;图2@@
static char ch [3] [5] ={ `a , `b , `c , `d , `e , `f
, `g , `h , `i , `j , `k , `l , `m , `n , `o , } ;
在初始化时,数组中表示行的方括号可为空,但表示列的方括号内必须有数字。例如:
static int n [ ] [4] = {10, 2, 30, 4, 55, 6, 7, 8, 9, 10, 11, 12} ; 与
下面写法同:
static int n [3] [4] = {10, 2, 30, 4, 55, 6, 7, 8, 9, 10, 11, 12} ;
例:打印一个二维表
f8-2.c
main ()
{
i
文档评论(0)