C语言总结(五)---数组
前言
学习完循环的灵活运用后,我们迎来了 C 语言中批量处理数据的核心工具 —— 数组。此前我们用单个变量存储一个值,而面对一组同类型数据时,变量便力不从心。数组能有序、连续地存储多个相同数据,是衔接基础语法与实用编程的关键,帮我们真正实现批量数据的输入、处理与输出,为后续复杂程序打下扎实基础。
数组:用来保存多个数据类型相同的数据。
1.数组基础
(1)数组定义
类型说明符 数组名[常量];
类型说明符:基本数据类型、构造数据类型(不能是 void类型)。说明数组中保存的数据的数据类型。
数组名:遵循标识符的命名规则。
[常量]:数组中可以保存的元素的个数
int a[10]; sizeof(a); //40字节 char str[32]; //32字节 float array[5]; //20字节
类型说明符 数组名[] = {值1,值2};
当数组定义时,[]中的个数省略时,必须要初始化,将来按照初始化的元素个数决定数组的元素个数。
(2)数组元素的访问
数组名[下标];
[]:下标运算符
下标:代表要访问数组中的第几个元素(0--->元素个数-1)
常量、变量、表达式(结果都应该为整型或与整型兼容)
注意:
数组元素访问时,下标从0开始到元素个数-1,超出该范围,则数组越界访问。
数组名代表了数组这种类型,不能给数组名直接赋值。
(3)数组初始化
如果不初始化,数组默认存放随机值。
1)全部初始化
int a[7] = {1,2,3,4,5,6,7};
2)局部初始化
int a[7] = {1,2,3,4};
已初始化部分按照初始化数据存储,未初始化部分按0存储
3)初始化为全0
int a[7] = {0};
int a[7] = {0,0,0,0,0,0,0};
(4)数组的存储形式
单一性:数组中的元素,每个元素的数据类型都是一致的
有序性:数组中的元素按照a[0]-a[n]的顺序进行存储
连续性:数组在内存中选取连续内存空间存储
数组越界:
初始化数组时,初始化的元素个数超出了数组本身的元素个数。
访问数组元素时,[]中的下标超出了数组元素的访问范围。
练习题:
1.从终端输入两个整型数据,获取这两个数的最大公约数和最小公倍数。
#include<stdio.h> int main(void) { int a = 0,b = 0; int i; int small; int gcd = 1; int lcm; scanf("%d %d",&a,&b); if(a > b) { small = b; } else { small = a; } for(i=small;i>=1;i--) { if(a % i == 0 && b % i == 0) { gcd = i; break; } } lcm = (a * b) / gcd; printf("gcd = %d\n",gcd); printf("lcm = %d\n",lcm); return 0; }2.从终端输入10个数据存入数组,打印能被3整除余1的数据。
#include<stdio.h> int main(void) { int a[10] = {0}; int i = 0; int len = sizeof(a) / sizeof(a[0]); for(i = 0;i < len;++i) { scanf("%d",&a[i]); } for(i = 0;i < len;++i) { if(a[i] % 3 == 1) { printf("num = %d \n",a[i]); } } return 0; }总结
数组是存储同类型多数据的重要结构,掌握它就掌握了批量数据处理的基础。定义时明确类型与长度,省略长度需初始化;访问用下标,牢记从 0 开始,杜绝越界。初始化灵活,未赋值元素自动补 0。它内存连续、存储有序,配合循环能高效处理批量数据。通过作业练习,把循环与数组结合使用,能切实提升编程实用性,为后续学习字符串、多维数组筑牢根基。