二级C语言考试辅导教程第四章:数组[2]

二级C语言考试辅导教程第四章:数组[2],第1张

二级C语言考试辅导教程第四章:数组[2],第2张

初始化的一般形式是:静态类型描述符数组名[常量表达式] = {value,value…value };其中,static表示静态存储类型,C语言规定只能对静态存储数组和外部存储数组进行初始化和赋值(对于静态存储,第五章介绍了外部存储的概念)。{}中的每个数据值都是每个元素的初始值,值之间用逗号分隔。比如:static int a [10] = {0,1,2,3,4,5,6,7,8,9 };相当于a[0]= 0;a[1]=1...a[9]= 9;

C对数组的初始赋值有如下规定:
1。您只能将初始值分配给某些元素。当{}中值的数量小于元素的数量时,只有第一部分元素被赋值。比如:static int a[10]={0,1,2,3,4 };意味着只有5个元素A [0] ~ A 二维数组被赋值,后5个元素自动赋值为0。
2。只能逐个给元素赋值,不能给整个数组赋值。比如十个元素都给了1的值,只能写成:static int a [10] = {1,1,1,1,1,1,1,1 };但不能写成:static int a[10]= 1;
3。如果你没有给一个可初始化的数组赋值,所有的元素都是0。
4。如果所有元素都被赋值,数组描述中可能没有给出数组元素的个数。比如:static int a前面描述的数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中,很多量是二维或者多维的,所以C语言允许构造多维数组。多维数组元素有多个下标来标识它们在数组中的位置,所以也叫多下标变量。本节只介绍二维数组,多维数组可以由二维数组类推得到。二维数组类型描述二维数组类型描述的一般形式是:
类型描述符数组名[常量表达式1][常量表达式2]…;
其中常数表达式1表示第一维下标的长度,常数表达式2表示第二维下标的长度。示例:
int a[3][4];本文描述了一个三行四列的数组。数组名是一个,其下标变量是一个整数。这个数组中有3×4个下标变量,分别是:A [0] [0],A [0] [1],A [0] [2],A [0] [3]
A [1] [0],A [1] [1],A [也就是说,它的下标是两个方向变化的,下标变量在数组中的位置也是在一个平面内,而不是像一维数组那样只是一个向量。然而,实际的硬件存储器是连续寻址的,也就是说,存储器单元在一维上线性排列。二维数组在一维内存中的存储方式有两种:一种是按行排列,即将一行按顺序放入第二行。另一种是按列排列,即一列结束后,按顺序放入第二列。在C语言中,二维数组是按行排列的。在图4.1中,行是按顺序存储的,首先存储行a[0],然后存储行a[1],最后存储行a[2]。每行有四个元素,也是依次存储的。由于数组A被描述为
int类型,占用两个字节的内存空,所以每个元素占用两个字节(图中每个网格一个字节)。={1,2,3,4,5 };可以写成:static int a[]={1,2,3,4,5 };动态赋值可以在程序执行过程中动态地给数组赋值。这时可以用循环语句和scanf函数给数组元素逐个赋值。
void main()
{
int I,max,a[10];
printf("输入10个数字:\ n ");
for(I = 0;i scanf("%d ",& a[I]);
max = a[0];
for(I = 1;I if(a[I]> max)max = a[I];
printf("maxmum=%d\n ",max);
}
此示例程序中的第一个for语句将10个数字逐个输入数组A。然后向max发送一个[0]。在第二个for语句中,从a[1]到a[9]与max中的内容逐一进行比较。如果它大于max的值,则下标变量被发送到max中,因此max总是已经被比较的下标变量中的一个。比较结束,输出最大值。
void main()
{
int I,j,p,q,s,a[10];
printf("\n输入10个数字:\ n ");
for(I = 0;i scanf("%d ",& a[I]);
for(I = 0;i p = iq = a[I];
for(j = I+1;j if(q if(i!= p)
{ s = a[I];
a[I]= a[p];
a[p]= s;}
printf("%d ",a[I]);
}
}
本示例程序中使用了两条并行的for循环语句,另一条循环语句嵌套在第二条for语句中。第一个for语句用于输入10个元素的初始值。第二个for语句用于排序。这个程序的排序采用了逐个比较的方法。在I个循环中,第一个元素的下标I赋给P,下标变量值a[i]赋给q,然后进入一个小循环,从a[i+1]到最后一个元素逐一与a[i]比较。如果它大于a[i],将它的下标发送给P,将元素的值发送给q,在一个循环的末尾,P是元素的下标,q是元素的值。此时,如果i≠p,说明P和Q的值不是进入小循环前赋值的值,那么交换a[i]和a[p]的值。此时,a[i]是排序后的元素。输出这个值后,进入下一个周期。对i+1之后的元素进行排序。资料来源:www.examda.com

[4]

[5]

二维数组元素的表示

二维数组的元素也称为双下标变量,其表达式为:数组名[下标][下标],其中下标应为整数常量或整数表达式。例如:a[3][4]表示三行四列的数组A的元素。下标和数组描述在形式上有些相似,但是它们有完全不同的含义。数组描述的方括号中给出了某一维的长度,即可以去掉目标值;数组元素中的下标是元素在数组中的位置标识。前者只能是常量,后者可以是常量、变量或表达式。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 二级C语言考试辅导教程第四章:数组[2]

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情