计算机C语言入门讲座—数组

计算机C语言入门讲座—数组,第1张

计算机C语言入门讲座—数组,第2张

在数组编程中,为了处理的方便,将几个同类型的变量以有序的形式组织起来。这些按顺序排列的同类数据元素的集合称为数组。在C语言中,数组是构造的数据类型。一个数组可以分解成多个数组元素,可以是基本数据类型,也可以是构造类型。因此,根据数组元素的类型,数组可以分为数值数组、字符数组、指针数组、结构数组等类别。
本章介绍数值数组和字符数组,其余将在后续章节介绍。类型描述:在C语言中使用数组时,必须先进行类型描述。数组描述的一般形式是:

类型说明符数组名[常量表达式],...;

类型描述符是任何基本数据类型或构造数据类型。阵列名称是用户定义的阵列标识符。方括号中的常量表达式表示数据元素的数量,也称为数组的长度。

例如:

int a3.数组名不能与其他变量名相同,例如:;解释整数数组A,有10个元素。
float b[10],c数组元素的表示;说明实数组B有10个元素,实数组C有20个元素。
char ch[20];描述字符数组ch,它有20个元素。

对于阵列类型的描述,应注意以下几点:

1.数组的类型实际上是索引组元素的值类型。对于同一个数组,它的所有元素都具有相同的数据类型。

2.数组名的书写规则应该符合标识符的书写规则。

[10]

void main()
{
int a;
float a[10];
……
}

是错误的。

4.方括号中的常量表达式表示数组元素的个数。例如,a[5]表示数组A有5个元素。但是它的下标是从0开始计算的。所以五行分别是A [0],A [1],A [2],A [3],A [4]。

5.变量不能用方括号表示元素个数,但可以是符号常量,也可以是常量表达式。例如:

# define FD 5
void main()
{
int a[3+2],b[7+FD];
……
}

这是合法的。但下面的解释是错误的。

void main()
{
int n = 5;
int a[n];
……
}

6.允许在同一个类型描述中描述多个数组和变量。

例子:int a,b,c,d,k1[10],k2[20];

[20]

数组元素是数组的基本单元。数组元素也是一个变量,由数组名后跟一个下标来标识。下标表示数组中元素的序号。数组元素的一般形式是:数组名[下标],其中下标只能是整数常量或整数表达式。如果是十进制数,C编译会自动四舍五入。比如A [5]、A [I+J]和A [I++]都是合法的数组元素。元素通常也被称为下标变量。在使用下标变量之前,必须定义一个数组。在C语言中,下标变量只能一个一个的使用,不能一次引用整个数组。例如,如果输出一个包含10个元素的数组,则必须使用循环语句逐个输出每个下标变量:

for(I = 0;我不能用一个语句输出整个数组。下列写法是错误的:

printf("%d ",a);

void main()
{
int i,a[10];
for(I = 0;I = 0;i - )
printf("%d ",a[I]);
printf("\n%d %d\n ",a[5.2],a[5.8]);
}
for(I = 0;I = 0;i - )
printf("%d ",a[I]);
printf("\n%d %d\n ",a[5.2],a[5.8]);
在这个例子中,使用一个循环语句向数组A的每个元素输入奇数,然后使用第二个循环语句从最大到最小输出奇数。在第一个for语句中,表达式3被省略。表达式i++在下标变量中用来修改循环变量。当然,第二个for语句也可以做到这一点。c语言允许用表达式表示下标。程序中的最后一个printf语句两次输出a[5]的值。可以看到,当下标不是整数时,会自动四舍五入。数组到数组赋值的方法除了用赋值语句给数组元素逐个赋值外,还可以采用初始化赋值和动态赋值。数组初始化赋值数组初始化赋值是指在数组描述时给数组元素赋值初始值。数组的初始化在编译阶段完成。这样可以减少运行时间,提高效率。

初始化的一般形式是:静态类型描述符数组名[常量表达式] = {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 [4]被赋值,后5个元素自动赋值为0。

2.只能逐个给元素赋值,不能给整个数组赋值。例如,将1值赋给所有十个元素只能写成:

static int a[10]={1,1,1,1,1,1,1,1,1,1,1 };

它不能写成:

静态int a[10]= 1;

3.如果你没有给一个可初始化的数组赋值,所有的元素都是0。

4.如果所有元素都被赋值,数组元素的数目可能不会在数组的描述中给出。示例:

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

可以写成:

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

动态赋值可以在程序执行过程中动态地给数组赋值。这时可以用循环语句和scanf函数给数组元素逐个赋值。

void main()
{
 int i,max,a[10];
 printf("input 10 numbers:\n");
 for(i=0;i

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 计算机C语言入门讲座—数组

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情