数组(上)

目录

数组的定义及其相关概念

一维数组的定义和引用

一维数组的赋值和应用


数组的定义及其相关概念

在C语言中,数组是用来提供一种简单的构造数据类型,即数组是一组同类型的数据项的有序集合,其中每个数据项称为“数组元素。数组分为一维数组和多维数组。一维数组就是仅有一个下标而确定数组元素,多维数组则是有一个以上的下标而确定数组元素的数组。

一维数组的定义和引用

定义:

[存储类型符]    数据类型符   数组变量名[整型常量表达式]; 

注意事项; 

  1.  存储类型符表示各元素的存储类别,比如在前面函数里讲到的static,extern,auto等类型
  2. 数据类型可以是任意类型,int型,float型,char型等
  3. 数组变量名的命名规则同变量名命名规则一样,符合C语言的标识符命名规则(不要以数字开头),数组变量名是数组第一个数组元素在内存中的地址
  4. “[  ]”是数组标志,中间必须是整型常量或者整型常量表达式,它决定了数组的长度(数组元素的个数),必须是固定的值。
  5. 数组定义后,系统会将其分配一定大小的内存单元,其所占内存单元的大小与数组元素的类型和数组的长度有关。数组所占字节数=数组大小*sizeof(数组元素类型)。比如:int a[10];其所占字节数为4x10=40

引用:

数组变量名[下标] 

  1. 数组中的下标都是从0开始,到数组大小-1结束
  2. 不能直接存取整个数组,只能引用数组中的各个数据单元,比如:
#include <stdio.h>
int main()
{
int a[10];
a[2]=4;
a[3]=2;
a[4]=a[2]+a[3];
printf("%d",a[4]);
return 0;
}

 其中定义了一个数组大小为10,数组名为a的整型数组,第3个元素a[2]被赋值为4,第4个元素a[3]被赋值为2,a[4]的值等于a[2]+a[3],整个数组是从a[0]开始,到a[9]结束

一维数组的赋值和应用

一维数组的初始化赋值:

数据类型符   数组变量名[常量表达式]={表达式1,表达式2,... 表达式n};

 注意:表达式的个数不能超过数组变量的大小,比如:

int  a[5]={1,2,3,4,5,6};//超出了数组的大小范围

表达式之间用逗号隔开,当表达式的个数小于数组的大小,未指定值的数组元素赋值为0

int a[10]={1,2,3,4,5,6}; 在内存中的存储形式如下图

当对数组元素赋初值时,可以省略数组的大小,此时数组的实际大小就是初值列表中表达式的个数。比如:char b[  ]={'a','b','c'};则数组b的实际大小为3;但不能对数组变量进行整体赋值,比如:

int  a[5];

a={1,2,3,4,5};         //错误

a[  ]={1,2,3,4,5};     //错误

a[5]={1,2,3,4,5};     //错误

应用:用冒泡排序法将10个整数按照从小到大的顺序排序

冒泡排序法是假设数组有n个数组元素,采用冒泡排序对数组元素进行排序,从下标为0的元素开始,比较相邻的两个元素的大小,每次比较如果前面的元素大于后面的元素,则交换这两个元素的值 

#include <stdio.h>
#define N 10
int main()
{
int a[N],i,j,t;//注意N已在预处理命令中赋值
printf("请输入一组数字:\n",N);//输入N个数字
for( i=0;i<N;i++)

scanf("%d",&a[i]);
    for( i=1;i<N;i++)//轮次,共N-1次
 
	  for( j=0;j<N-i;j++)//实现一次冒泡操作
        if(a[j]>a[j+1])//交换两相邻间的数
        {
        t=a[j];
        a[j]=a[j+1];
	    a[j+1]=t;
        }
printf("排序结果为:\n");//输出排序好的结果
for( i=0;i<N;i++)
  printf("%d",a[i]);
  return 0;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值