C语言中的多维数组是一种特殊的数据结构,它可以用来存储多个元素,并且可以在函数之间传递。在C语言中,多维数组可以作为函数的参数传递,这样就可以在函数之间共享信息。
传递多维数组作为函数参数时,需要注意一些重要的事项。首先,必须声明多维数组作为函数参数。其次,必须提供所有的行和列信息,以便函数能够正常工作。最后,必须使用正确的方式来传递多维数组作为函数参数。
// 声明一个三行四列的二位int型多维数组 int array[3][4]; // 函数声明 void func(int array[][4]); // 函数实体 void func(int array[][4]) { // 这里是函數內容 // ... return; }
二维数组可以声明如下:
float value[25][50];
这声明了具有25组50个浮点元素的值数组。
三维数组声明如下。
double beans[4] [10][20]; // 4 fields, each with 10 rows of 20 beans
这将声明一个包含800个元素的数组。
要初始化一个二维数组,将每行的初始值放在大括号{}之间,然后将括号中的所有行括起来:
int numbers[3][4] = { { 10, 20, 30, 40 }, // Values for first row { 15, 25, 35, 45 }, // Values for second row { 7, 8, 9, 50 } // Values for third row };
您可以通过提供一个值将整个数组初始化为0:
int numbers[3][4] = {0};
三维数组将具有三级嵌套大括号,内层包含一行初始化值集合:
int numbers[2][3][4] = { { // First block of 3 rows { 10, 20, 30, 40 }, { 15, 25, 35, 45 }, { 47, 48, 49, 50 } }, { // Second block of 3 rows { 10, 20, 30, 40 }, { 15, 25, 35, 45 }, { 47, 48, 49, 50 } } };
您需要一个嵌套循环来处理多维数组中的所有元素。
嵌套的级别将是数组维数。
这里是您如何对先前数字数组中的元素进行求和:
#include <stdio.h>
int main(void)
{
int numbers[2][3][4] = {
{ // First block of 3 rows
{ 10, 20, 30, 40 },
{ 15, 25, 35, 45 },
{ 47, 48, 49, 50 }
},
{ // Second block of 3 rows
{ 10, 20, 30, 40 },
{ 15, 25, 35, 45 },
{ 47, 48, 49, 50 }
}
};
int sum = 0;
for(int i = 0 ; i < 2 ; ++i)
{
for(int j = 0 ; j < 3 ; ++j)
{
for(int k = 0 ; k < 4 ; ++k)
{
sum += numbers[i][j][k];
}
}
}
printf("The sum of the values in the numbers array is %d.", sum);
return 0;
}
上面的代码生成以下结果。
我们可以创建多维数组,例如二维数组,我们可以使用[] []。
#include <stdio.h>
int main() {
// define Multidimensional demenarray
int matrix[3][5];
// insert data
int i,j;
for(i=0;i<3;i++){
for(j=0;j<5;j++){
matrix[i][j] = i+j;
}
}
// display data
for(i=0;i<3;i++){
for(j=0;j<5;j++){
printf("%d ",matrix[i][j]);
}
printf("n");
}
return 0;
}
上面的代码生成以下结果。
这里是使用 sizeof
的上一个循环运算符计算循环控制限制:
#include <stdio.h>
int main(void)
{
int numbers[2][3][4] = {
{ // First block of 3 rows
{ 10, 20, 30, 40 },
{ 15, 25, 35, 45 },
{ 47, 48, 49, 50 }
},
{ // Second block of 3 rows
{ 10, 20, 30, 40 },
{ 15, 25, 35, 45 },
{ 47, 48, 49, 50 }
}
};
int sum = 0;
for(int i = 0 ; i < sizeof(numbers)/sizeof(numbers[0]) ; ++i)
{
for(int j = 0 ; j < sizeof(numbers[0])/sizeof(numbers[0][0]) ; ++j)
{
for(int k = 0 ; k < sizeof(numbers[0][0])/sizeof(numbers[0][0][0]) ; ++k)
{
sum += numbers[i][j][k];
}
}
}
return 0;
}
上面的代码生成以下结果。
以下程序演示如何搜索二维数组。
#include <stdio.h>
main()
{
int iTwoD[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
int iFoundAt[2] = {0, 0};
int x, y;
int iValue = 0;
int iFound = 0;
printf("nEnter your search value: ");
scanf("%d", &iValue);
//search the 2-D array
for ( x = 0; x <= 2; x++ ) {
for ( y = 0; y <= 2; y++ ) {
if ( iTwoD[x][y] == iValue ) {
iFound = 1;
iFoundAt[0] = x;
iFoundAt[1] = y;
break;
} //end if
} //end inner loop
} //end outer loop
if ( iFound == 1 )
printf("nFound value in iTwoD[%d][%d]n", iFoundAt[0], iFoundAt[1]);
else
printf("nValue not foundn");
} //end main
上面的代码生成以下结果。
学习C-C常量定义命名常量PI是一个数学常数。我们可以将Pi定义为在编译期间要在程序中被其值替换的符号。 #include stdio.h #defi...
学习C-C结构体我们可以定义一个struct来声明一个新的数据类型。我们使用 struct 关键字。使用struct关键字可以定义一个称为单个...
C 练习实例63 C 语言经典100例题目:画椭圆ellipse(在TC中实现)。程序分析:无。程序源代码://Created by www..cn on 15/11/9...