数组|学习笔记

简介: 快速学习数组

开发者学堂课程【你的第一门 C 语言课数组】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/444/detail/5467


数组


内容介绍:

一、数组的定义

二、 访问数组元素

三、 循环跟数组的关系

四、 数组的初始化

 

一、数组的定义

  • 类型 数组名[元素个数

int a[6];

char b[24];

double c[3];]

注意:数组不能动态定义

  • 上边几个类型,都占用了多少字节的内存?

图片65.png


二、 访问数组元素

  •  数组名[下标]

a[0]; //访问a数组中的第一个元素

b[1];//访问b数组中的第二个元素

c[5];//访问c数组中的第六个元素

  • 注意:

nt a[5] ;//创建一个具有五个元素的数组

a[0]; //访问第一个元素的下标是0,不是1

a[5]; //报错,因为第五个元素的下标是 a [4]


三、循环跟数组的关系

  • 这是因为我们常常需要使用循环来访问数组:

int a[10];

for (i =0; i<10;i++)

{

a[i]= i;

}

  • 案例

举个例子,我们尝试用数组存放班里10位同学的数学成绩,并计算出平均数。

#include

#define NUM 10

int main( )

{

int s [NUM] ;

int i,sum=0;

for(i=0;i<10;i++)

{

printf("请输入第%i位同学的成绩:”,i+1);

scanf("%d",&s[i]) ;

sum +=s[i] ;

}

//浮点型

printf("成绩录入完毕,该次考试的平均分是:%.2f\n", (double)sum / NUM ;|

return 0 ;

}

运行:gcc test1.c && ./a. out

结果:

请输入第1位同学的成绩:80

请输入第2位同学的成绩:90

请输入第3位同学的成绩: 70

请输入第4位同学的成绩: 66

请输入第5位同学的成绩:77

请输入第6位同学的成绩: 54

请输入第7位同学的成绩:67

请输入第8位同学的成绩:89

请输入第9位同学的成绩:65

请输入第10位同学的成绩: 99

成绩录入完毕,该次考试的平均分是:75.70


四、数组的初始化

  •  将数组中所有元素初始化为0,可以这么写:

int a[10] = {0}; //事实上这里只是将第一个元素赋值为0

  • l 如果是赋予不同的值,那么用逗号分隔开即可:

int a[10]={1,2,3,4,5,6,7,8,9,0};

  • l 你还可以只给一部分元素赋值,未被赋值的元素自动初始化为0:

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

//表示为前边6个元素赋值,后边4个元素系统自动初始化为0

  • l 举例1:

#include

int main()

{

int a[10]={0}

int i;

for (i = 0; i < 10;i++)

{

printf(%d\n, a[1])

}

return 0;

}

运行:gcc test2.c && ./a. out

结果:

0

0

0

0

0

0

0

0

  • 举例2:

#include

int main()

{

int a[10];

int i;

for (i = 0; i < 10;i++)

{

printf(%d\n, a[1])

}

return 0;

}

运行gcc test2.c && ./a. out

结果:

134518360

1075976712

134513721

8810972

134513196

8821984

8818676

134513696

134513424

134513707

  • l 举例3:

#include

int main()

{

int a[10]={1,2,3,4,5,6,7,8,9,0}

int i;

for (i = 0; i < 10;i++)

{

printf(%d\n, a[1])

}

return 0;

}

运行:gcc test1.c && ./a. out

结果:

1

2

3

4

5

6

7

8

9

1

0

  • 举例4:

#include

int main()

{

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

int i;

for (i = 0; i < 10;i++)

{

printf(%d\n, a[1])

}

return 0;

}

运行:gcc test1.c && ./a. out

结果:

1

2

3

4

5

0

0

0

0

0

  • 有时候还可以偷懒,可以只给出各个元素的值,而不指定数组的长度(因为编译

器会根据值的个数自动判断数组的长度):

int a[] = {1,2,3,4,5,6,7,8,9,0};

  • 举例1:

#include

int main()

{

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

int i;

for (i = 0; i < 10;i++)

{

printf(%d\n, a[1])

}

return 0;

}

运行:gcc test2.c && ./a. out

结果:

1

2

3

4

5

5

13451375

0

-1079398472

10218806

  •  l 举例2:

#include

int main()

{

int a[10]={[3]=3,[5]=5.[8]=8};

int i;

for (i = 0; i < 10;i++)

{

printf(%d\n, a[1])

}

return 0;

}

运行:gcc test2.c && ./a. out

结果:

0

0

0

3

0

5

0

0

8

0

  • 举例3:

#include

int main()

{

int a[10]={[3]=3,[5]=5.[8]=8};

int i;

for (i = 0; i < 10;i++)

{

printf(%d\n, a[1])

}

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

return 0;

}

运行:gcc test2.c && ./a. out

结果:

0

0

0

3

0

5

0

0

8

0

40

  • C99增加了一种新特性:指定初始化的元素。这样就可以只对数组中的某些指定

元素进行初始化赋值,而未被赋值的元素自动初始化为0:

int a[10] = {[3] = 3,[5]=5,[8] = [8]};

相关文章
|
7月前
|
存储
数组的进阶
数组的进阶
|
4月前
|
算法 C++
c++学习笔记04 数组
这篇文章是C++学习笔记4,主题是数组。
45 4
|
4月前
|
安全 编译器 C语言
C++入门-数组
C++入门-数组
数组的简单认识及其学习(二)
数组的简单认识及其学习(二)
67 0
|
算法 前端开发 程序员
前端算法专栏-数组-215. 数组中的第K个最大元素
前端算法专栏-数组-215. 数组中的第K个最大元素
|
前端开发
前端——把一个数组添加到另一个数组里
前端——把一个数组添加到另一个数组里
数组的简单认识及其学习(一)
数组的简单认识及其学习(一)
61 0
|
存储 编译器 C语言
【学习笔记之我要C】数组
【学习笔记之我要C】数组
53 0