深入理解C语言数组
什么是数组
数组是一种数据结构,它是由相同类型的元素所组成的序列。
在C语言中,数组是由相同类型的元素在内存中连续存储所组成的。数组的下标是从0开始的非负整数,用于访问数组中的元素。数组的大小是在声明时指定的,一旦确定大小就不能改变。
数组的声明
C语言数组的声明格式如下:
type arrayName[arraySize];
其中,type是数组中元素的数据类型,arrayName是数组的名称,arraySize是数组的大小。
例如声明一个包含10个int类型元素的数组:
int myArray[10];
数组的访问
数组的访问通过下标进行,下标从0开始,用[]括起来,例如:
int myArray[10];
myArray[0] = 100; // 给数组第一个元素赋值100
int x = myArray[0]; // 获取数组第一个元素的值
数组的初始化
可以在声明数组时对其进行初始化。初始化的方法有多种,其中最常见的方式是使用花括号{}包含初始值列表,例如:
int myArray[5] = {1, 2, 3, 4, 5};
也可以只给数组的前几个元素赋值,后面的元素默认为0,例如:
int myArray[5] = {1, 2};
多维数组
除了一维数组之外,C语言还支持多维数组。多维数组可以看做是两个或多个一维数组嵌套而成的。
多维数组的声明格式如下:
type arrayName[size1][size2][size3]...[sizeN];
例如,声明一个包含3行4列的二维数组:
int myArray[3][4];
可以通过两个下标来访问二维数组中的元素,例如:
int myArray[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int x = myArray[1][2]; // 获取第2行第3列的元素值,即7
数组和指针的关系
在C语言中,数组和指针有一定的关系。一个数组名实际上是一个指向数组第一个元素的指针。
例如:
int myArray[10];
int* p = myArray; // p指向myArray的第一个元素
示例一:计算数组元素之和
我们来看一个计算数组元素之和的例子。
#include <stdio.h>
int main() {
int myArray[5] = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += myArray[i];
}
printf("数组元素之和为:%d\n", sum);
return 0;
}
输出结果为:
数组元素之和为:15
示例二:矩阵相乘
我们再来看一个矩阵相乘的例子。
#include <stdio.h>
int main() {
int a[3][2] = {
{1, 2},
{3, 4},
{5, 6}
};
int b[2][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8}
};
int c[3][4] = {0};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
for (int k = 0; k < 2; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
输出结果为:
11 14 17 20
23 30 37 44
35 46 57 68
以上就是深入理解C语言数组的完整攻略和两个示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深入理解c语言数组 - Python技术站