C语言之数组精讲(1)
目录
1.在声明变量时,除了必要的情况下,都需要对变量进行初始化。
2.我们还可以像下面在声明数组时不指定元素个数,数组会根据初始值的个数自动进行设置。
学生的学籍号码、运动选手背后的号码、飞机高铁的座位号……在生活中我们经常遇到把具有相同性质的事物聚集在一起的情况,如果我们一个个列举就显得十分冗杂,不如统一使用号码来解决这个问题,比如输入成绩时,我们对学生进行编号,再按编号输入成绩,要是你在程序中输入一个一个学生的姓名呢?是不是很麻烦
接下来我们将为大家介绍为了提高相同效率而把具有相同类型的数据有序地组织起来的一种形式——数组。
数组
在没学数组之前让我们输入5个学生的成绩、总和及其平均分并显示出来,我们一定会声明5个变量通过printf与scanf函数进行输入输出,再次通过sum求和,进而求平均。
对于上述的处理,除了变量名不同外,执行的都是相同的操作,所以当数量超过一定数值时就不能再这样处理了。
擅长处理这类数据的就是数组,它通过号码把相同数据类型的变量集中起来进行管理。
注意
可以用数组实现相同类型的对象的集合。
统一类型的变量——元素集中起来,在内存上排成一条直线,这就是数组。
数组的声明(使用数组前的准备)
首先进行声明,数组的声明通过指定元素类型、变量名、元素个数来进行,并且[ ]中的元素个数必须是常量。
,,下面是声明数组a,是一个元素类型为int类型、元素个数为5的数组。
访问数组(数组的使用方法)
数组a的各个元素,都是int类型的对象,不允许一些元素是int类型一些元素是double类型。
对于数组内各个元素的访问(读取)都是自由的,访问元素使用的是“[ ]”称为下标运算符。[ ]中的操作数称为下标。
下标表示是首个元素之后的第几个元素,而不是数组中的第几个元素。
?另外,数组声明中使用的[ ]仅仅是分隔符,而访问数组时使用的则是运算符。
a[b]? ? ? ? ? ? ? ? ? ? ? ? ? 从数组a的首个元素起,访问b个元素后的元素 |
例如,从第一个元素开始访问是a[0],第二个元素是a[1]……第n个元素是a[n-1],不存在a[-1]、a[n]这样就溢出了。
数组的遍历
创建一个元素类型为int类型,包含5个元素的数组,依次把1—5赋值给它们并且进行显示。
#include<stdio.h>
int main()
{
int v[5];
v[0] = 1;//下标:0 1 2 3 4
v[1] = 2;//元素:1 2 3 4 5
v[2] = 3;
v[3] = 4;
v[4] = 5;
printf("v[0] = %d\n", v[0]);
printf("v[1] = %d\n", v[1]);
printf("v[2] = %d\n", v[2]);
printf("v[3] = %d\n", v[3]);
printf("v[4] = %d\n", v[4]);
return 0;
}
接下来我们使用for语句对其进行简化修改:创建变量i,是i从0递增到5,执行5次循环
#include<stdio.h>
int main()
{
int v[5];
int i;
for(i = 0; i < 5; i++)//为元素赋值
{
v[i] = i + 1;
}
for(i = 0; i < 5; i++)//显示元素的值
{
printf("v[%d] = %d\n", v[i], i);
}
return 0;
}
接下来我们来进一步显示它循环的过程:
i=1时,v[0]=0+1;
i=2时,v[1]=1+1;
………………
i=4时,v[4]=4+1;
?像这样,按顺序逐个查看数组的元素,就称为遍历。
数组初始化
1.在声明变量时,除了必要的情况下,都需要对变量进行初始化。
int v[5] = {1, 2, 3, 4, 5};
最后一个初始值加不加逗号都可以。
2.我们还可以像下面在声明数组时不指定元素个数,数组会根据初始值的个数自动进行设置。
int v[] = {1, 2, 3, 4, 5};
3.使用0对{}内没有赋初始值的元素进行初始化。
int v[5] = {1, 2};//{1, 2, 0, 0, 0}
4.使用0对初始化数组内的全部元素
int v[0] = {0};//{0, 0, 0, 0, 0}
在初始化数组时,也有错误的操作
当初始值的个数超过超过数组的元素个数时,程序会发生错误。
int v[3] = {1, 2, 3, 4, 5};//初始化值过多
不能通过赋值语句进行初始化
int v[3];
v = {1, 2, 3};
最后,天气渐冷,大家一定要做好保暖措施,锻炼身体,预防流感!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!