C语言从基础到进阶全面讲解数组_第1页
C语言从基础到进阶全面讲解数组_第2页
C语言从基础到进阶全面讲解数组_第3页
C语言从基础到进阶全面讲解数组_第4页
C语言从基础到进阶全面讲解数组_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第C语言从基础到进阶全面讲解数组目录1.基础知识2.数组的分类2.1按元素类型分类2.2按维数分类3.数组定义和初始化3.1一维数组3.2二维数组4.数组元素的引用方法5.字符数组的定义

1.基础知识

C语言中使用数组表示多个连续的同类型的存储位置使用数组表示多个连续存储位置的时候只需要一个名字,这个名字代表所有这些存储位置的整体每一个存储位置有一个自己的编号,最前边的存储位置的编号是0,向后依次递增,最后一个存储位置的编号是个数减一,这个编号叫做下标决不可以使用超过范围的下标使用名称和下标就可以表示这组存储位置中的某一个

2.数组的分类

2.1按元素类型分类

字符数组:若干个字符变量的集合短整型数组整型数组长整型数组浮点型数组指针数组结构体数组

2.2按维数分类

一维数组二维数组多维数组

3.数组定义和初始化

3.1一维数组

格式:数据类型数组名[数组元素的个数];

数组名和元素个数中间没有空格

inta[10];定义了一个名为a的数组,每个元素都是int类型,一共有10个元素数组元素的个数在定义的时候也可以不写,但是需要初始化,如下例的b[]

#includestdio.h

intmain(intargc,char*argv[]){

inta[10];

intb[]={10,20,30};

printf("sizeof(a)=%d\n",sizeof(a));

return0;

初始化

全部初始化inta[5]={1,2,3,4,5};

部分初始化,赋值不够的后面补0inta[5]=2;

#includestdio.h

intmain(){

//如果不初始化,直接使用为随机值

inta[4]={2,3,6,5};

printf("数组a的元素为:%d,%d,%d,%d\n",a[0],a[1],a[2],a[3]);

intb[4]={2,5};

printf("数组b的元素为:%d,%d,%d,%d\n",b[0],b[1],b[2],b[3]);

3.2二维数组

格式:数据类型数组名[行的个数][列的个数]

例如inta[2][4]

解释:名为a的二维数组,每个元素都是int类型,包含两行四列元素,一共有8个元素

二维数组也是连续开辟空间,访问元素是行和列都是从0开始

分别是a[0][0],a[0][1]a[1][3]

注意:二维数组的行数可以省略,列数不能省略,在初始化的时候按照如下操作

系统会根据列数自动指定行数

#includestdio.h

intmain(){

inta[2][4];

printf("sizeof(a)=%ld%ld\n",sizeof(a),2*4*sizeof(int));

//省略行标:

intb[][4]={1,2,3,4,5};

printf("sizeof(b)=%ld\n",sizeof(b));

return0;

初始化

逐行初始化:

#includestdio.h

intmain(){

inta[2][3]={{1,2,3},{6,6,6}};

inti=0,j=0;

for(i=0;ii++){

for(j=0;jj++){

printf("%d,",a[i][j]);

printf("\n");

return0;

}

部分初始化:

#includestdio.h

intmain(){

inta[2][3]={{1,2},{6}};

inti=0,j=0;

for(i=0;ii++){

for(j=0;jj++){

printf("%d,",a[i][j]);

printf("\n");

return0;

全局初始化:

#includestdio.h

intmain(){

inta[2][3]={1,2,3,4,5,6};

inti=0,j=0;

for(i=0;ii++){

for(j=0;jj++){

printf("%d,",a[i][j]);

printf("\n");

return0;

4.数组元素的引用方法

一维数组:数组名[下标]

二维数组:数组名[行标][列标]

上例中已经通过a[i][j]进行引用,简单易懂

5.字符数组的定义

#includestdio.h

intmain(){

//用字符的方式赋值

charc1[]={'c','','p','i','g'};

printf("c1数组为:\n");

for(inti=0;ii++){

printf("'%c',",c1[i]);

printf("\n");

//用字符串的方式赋值,多占1个字节,用于存放结束标志‘\0'

charc2[]="cpig";

for(intj=0;jj++){

printf("'%c',",c2[j]);

//二维数组字符赋值

chara[][5]={

{'a','b','v','g','y'},

{'a','b','v','g','y'}

//字符串赋值,知道为什么是6吗?因为多了一个'\0'

charb[][6]={"hello","world"};

//二维数组的元素读者可自行打印练习

return0;

}

练习:定义一个字符数组,通过scanf函数输入字符串并输出结果

#includestdio.h

intmain(){

//通过赋值”“这样的方式可以清除字符数组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论