作者:余小小
日期:2021-10-02
数组概念
-
数据结构(顺序表),它可以存储一个固定大小的相同类型元素的顺序集合
-
数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
-
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
-
数组名的实际值是第一个元素的地址
-
数组中的元素可以通过索引被访问,第一个索引值为 0。
-
数组的 名字 遵守:小驼峰+标识符
-
有几个[]符号,就叫做几维数组
创建数组——静态
声明数组
这叫做一维数组。数组长度 必须是一个大于零的整数常量,不能传入变量
数据类型 数组名字 [ 数组长度 ];
double yxqz [10];
数组元素赋值
yxqz[0] = 1000.0;
yxqz[1] = 2.0;
yxqz[2] = 1000.0;
-
数组的长度一共是有10个长度
-
所以,在创建数组的时候,就会开辟10个长度的空间
-
这里只用到了3个空间,所以其他的空间都是根据相应的 数据类型自动设置成默认值
遍历数组
数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内
一般使用循环遍历
int main ()
{
double yxqz [10];
yxqz[0] = 1000.0;
yxqz[1] = 2.0;
yxqz[2] = 1000.0;
for (int i = 0;i<10;i++){
printf("数组中的元素:%f\n",yxqz[i]);
}
return 0;
}
可以看到,其他的值都是double类型的默认值
创建数组——动态
多个参数,使用对象的方式来进行创建,因为在c中没有对象这个说法,但是这个其实是对象的写法。
double yxqz[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
int main ()
{
double yxqz[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
yxqz[0] = 1000.0;
yxqz[1] = 2.0;
yxqz[2] = 1000.0;
for (int i = 0;i<10;i++){
printf("数组中的元素:%f\n",yxqz[i]);
}
return 0;
}
二维数组
二维数组,第二个[]必填
在本质上,是一个一维数组的列表。声明一个 x 行 y 列的二维整型数组
-
第一个[ ]:行
-
第二个[ ]:列
[3][2]:三行二列
[2][2]:二行二列
二维数组格式伪代码
数据类型 数组名字 [ 行 ][ 列 ];
所以,和一维数组一样,也是有两种定义方式的,第一种是静态的,第二种是动态的。
double demo1[3][2];
静态初始化
接着上面定义的数组,进行初始化
demo1[0][0]=66;demo1[0][1]=77;demo1[1][2]=88;demo1[1][0]=99;
遍历二维数组
-
之前学习循环嵌套的时候,就了解过了,第一层循环是行,第二层循环是列
-
所以,这里要循环嵌套来遍历,进行双层循环,因为要用到数组索引,所以用for循环
-
我这个写法,可能在某些编译器会报错,把i和j提前声明就是了
int main() {
double demo1[3][2];
demo1[0][0] = 66;
demo1[0][1] = 77;
demo1[1][2] = 88;
demo1[1][0] = 99;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
printf("二维数组中的元素:%f,%f\n", demo1[i][j]);
}
}
return 0;
}
动态初始化
这里的行可以不用填也是可以的哦
double demo1[][2]={{1,3},{1,4},{2,3}};
int main() {
double demo1[][2]={{1,3},{1,4},{2,3}};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
printf("二维数组中的[%d][%d] =元素:%f,%f\n", i,j,demo1[i][j]);
}
}
return 0;
}
暂无评论内容