1.11、C语言数组

数组
概念:具有相同数据类型元素的集合,存储是固定大小
特点:1.数据类型相同 2.内存连续

一维数组
1、定义:存储类型 数据类型 数组名[下标]; //下标–数组的长度,元素的个数
一个数组所占的内存空间是所有元素占内存空间的总和

2、定义并初始化
int a[10];//定义10个int数据的集合
int b[5] = {1, 2, 3, 4, 5}; //定义并初始化
int arr[5] = {1, 2}; //定义并部分初始化
int arr1[5] = {0}; //将数组中所有的元素初始化为0
int arr[] = {1, 2, 3, 4, 5}; //确定数组元素个数为5,即下标为5

3、先定义后赋值
int a[5];
a[0] = 1; //a[5] = {1, 2, 3}
a[1] = 2;
a[2] = 3;

4、数组的下标:从0开始,到数组长度n-1结束
int a[5]; //a[0] a[1] a[2] a[3] a[4]

5、数组名:是数组的首地址,是一个地址产量和&数组名[0]地址一样

6、当数组定义未被初始化:
局部变量数组,其元素的值是随机值
全局变量数组,其元素的值是0
静态变量数组,其元素的值是0
特别注意:如果访问数组长度以外的下标时,属于越界操作,很危险,不建议此操作。

#define 宏名 数组大小
求取数组的元素个数:
sizeof(数组名)/sizeof(数据类型);
sizeof(数组名)/sizeof(首元素);

字符数组
定义:存储类型 数据类型 数组名[下标];
数据类型 char
char a[4]={‘a’, ‘b’, ‘c’, ‘d’};
char str[4]={‘a’};
char str[4]=“Hello”
char str[5]={‘H’,‘e’,‘l’,‘l’,‘o’} //5个字节
char str[5]=“Hello” //5个字节
char str[ ]={‘H’,‘e’,‘l’,‘l’,‘o’} //5个字节
char str[ ]=“Hello” //6个字节

for(i = 0;i < strlen(a)&&a[i] != ‘\0’;i++)//a[i] != '\0’遇到‘\0’结束循环,防止输入值没有数组长度那么大,剩余部分为乱码可能会影响到结果。

练习
1、找出char str[6]= "Hello"中ASCII码最大的字符。

2、定义一个一维数组,将数组中的值进行反转
int arr[] = {1,2,3,4};

3.青年歌手参加歌曲大奖赛,有10个评委对她的进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。

4.输入一串字符,计算其中空格的个数。数组输入空格:scanf("%[^\n]s", 数组名); //要求以\n为结束符

5.输入一串字符,如果其中有a-f或者A-F,就输出,否则重新输入。

6.把[1,3,5,7,9]变化变成整数13579.

7.输入10个数,输出平均值与高于平均值的数。

猜你喜欢

转载自blog.csdn.net/qq_41110647/article/details/106315180