举报投诉联系我们 手机版 热门标签 鳄鱼CMS
您的位置:鳄鱼CMS > c多维数组传参数 C 多维数组

c多维数组传参数 C 多维数组

2023-04-20 23:31 C语言教程

c多维数组传参数 C 多维数组

c多维数组传参数

C语言中的多维数组是一种特殊的数据结构,它可以用来存储多个元素,并且可以在函数之间传递。在C语言中,多维数组可以作为函数的参数传递,这样就可以在函数之间共享信息。

传递多维数组作为函数参数时,需要注意一些重要的事项。首先,必须声明多维数组作为函数参数。其次,必须提供所有的行和列信息,以便函数能够正常工作。最后,必须使用正确的方式来传递多维数组作为函数参数。

// 声明一个三行四列的二位int型多维数组 
int array[3][4]; 
 
// 函数声明 
void func(int array[][4]); 
 
// 函数实体 
void func(int array[][4]) { 

    // 这里是函數內容  

    // ...  

    return;  
}  

C 多维数组

学习C - C多维数组

二维数组可以声明如下:

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

这里是使用 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 

上面的代码生成以下结果。

阅读全文
以上是鳄鱼CMS为你收集整理的c多维数组传参数 C 多维数组全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 鳄鱼CMS eyucms.com 版权所有 联系我们