快捷搜索: 王者荣耀 脱发

【七】c语言程序设计-数组篇

前言

对于同类型批量数据的组织方式,可以使用数组。

数组是指具有内在联系的一组相同类型变量的有序集合,它用一个统一的数组名来表示这一组变量,用序号来说明每个变量在数组中的相对位置,数组中的每个变量就称为数组元素,表面数组在数组中相对位置的序号就称为元素的下标。

7.1、数组

7.1.1、数组的使用

定义数组

<类型>变量名称[元素数量]

例如:int grades[100];

    元素数量必须是整数

数组

    是一种容器,特点是: 其中所有的元素具有相同的数据类型; 一旦创建,不能改变大小 数组中的元素在内存中是连续一次排列的

数组的单元

    数组的每个单元就是数组类型的一个变量 使用数组时放在[]中的数字叫做下标或索引,下标从0开始计数

有效的下标范围

    编译器和运行环境都不会检查数组下标是否越界,无论是对数组单元还是写 一旦程序运行,越界的数组访问可能造成问题,导致程序崩溃 segmentation fault 但是也可能运气好,没有造成严重的后果 所以我们在编写程序的时候通过使用有效的下标值:[0,数组的大小-1]

能否创建一个长度为0的数组

    int a[0] 可以存在,但是无用

7.1.2、数组的例子:统计个数

写一个程序,输入数量不确定的[0,9]范围内的整数,统计每一种数字出现的次数,输入-1表示结束。

#include<bits/stdc++.h>
using namespace std;
int main(void){
	int x;
	int count[10];
	int i;
	for(i=0;i<10;i++){
		count[i]=0;
	}
	scanf("%d",&x);
	while(x!=-1){
		if(x>=0&&x<=9){
			count[x]++;
		}
			scanf("%d:%d
",&x);
	}
for(i=0;i<10;i++){
	printf("%d:%d
",i,count[i]);
}
	
	return 0;
}

7.2、数组的运算

集成初始化

    用[n]在初始化数据中给出定位 没有定位的数据接在前面的位置后面 其他位置直接补0 也可以不给出数组大小,让编译器自己算 特别适合初始数据稀疏的数组

数组的大小

sizeof(a)/sizeof(a[0])
    sizeof(a[0])给出数组中单个元素的大小,于是相处就得到了数组的单元个数 这样的代码,一旦修改数组中初始的数据,不足要修改遍历的代码

遍历数组

    通常都是使用for循环,让循环变量i从0到<数组的长度,这样循环体内最大的i正好是数组最大的有效下标 常见的错误是: 循环结束条件是<=数组长度。或: 离开循环后,继续使用i的值来做元素的下标!

注意:

    数组作为函数的参数时: 不能在[]中给出数组的大小 不能利用sizeof来计算数组的元素个数

7.2.2、二维数组

int a[3][5];

通常理解为a是一个3行5列的矩阵;

二维数组的遍历

for(i=0;i<3;i++){
	for(j=0;j<5;j++){
		a[i][j]=i*j;
	}
}
    a[i][j]是一个int 表示第i行第j列上的单元

-END-

经验分享 程序员 微信小程序 职场和发展