首页 > 其他分享 >c语言中向函数传递二维矩阵的方法

c语言中向函数传递二维矩阵的方法

时间:2023-11-27 14:11:49浏览次数:35  
标签:arr func int 矩阵 二维 中向 arr2 数组

在C语言中,向函数传递二维数组有几种方式,这主要取决于二维数组的大小是否已知。下面是几种常见的方式:   

1)如果二维数组的大小已知,那么你可以在函数参数中直接指定数组的大小。例如:  void func(int arr[10][10]) { ... }  在这个例子中,func函数接受一个10x10的二维数组作为参数。   

2)如果二维数组的第一维的大小未知,但是第二维的大小已知,那么你可以只指定第二维的大小。例如:  void func(int arr[][10], int size) { ... }  在这个例子中,func函数接受一个二维数组作为参数,数组的第二维的大小是10,第一维的大小是size。   

3)如果二维数组的大小完全未知,那么你可以将其视为一个指针的指针。例如:  void func(int **arr, int rows, int cols) { ... }  在这个例子中,func函数接受一个指针的指针作为参数,然后使用rows和cols参数来获取数组的大小。   

需要注意的是,如果你选择使用指针的指针来表示二维数组,那么你需要使用动态内存分配(例如malloc或者calloc函数)来创建二维数组,并在使用完后使用free函数来释放内存。    

 

int sum2DArray(int **arr, int *start, int *end)
{
    int sum = 0;
    // int *p = *arr;
    int *p = NULL;
    p = start;
    while (p < end)
    {
        sum += *p;
        p++;
    }
    return sum;
}

void main(){
    int arr1[3][4] = {0};
    int arr2[3][4] = {0};
    int arr3[3][4] = {0};
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            arr1[i][j] = i + j;
            arr2[i][j] = i - j;
            arr3[i][j] = i * j;
        }
    }
    int *ptr_arr_start = &arr2;
    int *ptr_arr_end = &arr2 + 1;
    sum = sum2DArray(arr2, ptr_arr_start, ptr_arr_end);

}

 

标签:arr,func,int,矩阵,二维,中向,arr2,数组
From: https://www.cnblogs.com/dogingate/p/17859105.html

相关文章

  • 二维数组
    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组语法:inta[][]=newint[4][5];以上二维数组a可以看成一个两行五列的数组publicclassDemo02{publicstaticvoidmain(String[]args){int[][]a={{1,2},{2,3},......
  • 邻接矩阵
     #include<stdio.h>#include<stdlib.h>#defineMaxSize20typedefintVertexType;typedefintEdgeType;typedefintElem;typedefstruct{//邻接矩阵VertexTypeVex[MaxSize];EdgeTypeEdge[MaxSize][MaxSize];......
  • ACW756回形矩阵
    点击查看代码importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intn=sc.nextInt();intm=sc.nextInt();intres[][]=newint[n][m];//......
  • 二维数组
    packagearray;publicclassArrayDemo05{publicstaticvoidmain(String[]args){int[][]array={{1,2},{2,3},{3,4},{4,5}};//[4][2]/*1,2array[0]2,3array[1]3,4array[2]4,5array[3]......
  • 定义二维数组,冒泡排序法
    //#define_CRT_SECURE_NO_WARNINGS1////#include<stdio.h>//#include<stdlib.h>//#include<string.h>//#include<math.h>//voidbubble_sort(intarr[],intsz)//{// inti=0;// for(i=0;i<sz-1;i++)// {// intj=0......
  • 二维数组
    一.二维数组`2041:【例5.9】新矩阵时间限制:1000ms内存限制:65536KB提交数:54995通过数:26522【题目描述】已知一个n×n(2≤n≤20)的矩阵(方阵),把矩阵二条对角线上的元素值加上10,然后输出这个新矩阵。【输入】第一行为n;下面为一个n×n,矩阵中各正整......
  • python 矩阵 换行
    Python矩阵换行实现流程为了帮助初学者实现Python矩阵的换行,下面将提供一个详细的步骤,通过代码和注释的形式指导他们完成这个任务。在开始之前,确保已经了解Python的基本语法和矩阵的基本概念。步骤步骤描述步骤1创建一个二维矩阵步骤2使用循环遍历二维矩阵的每一......
  • 一维数组与二维数组的创建、初始化和储存
     一、一维数组1.数组的创建 数组是一组相同类型的集合。数组的创建方式:type_t  arr_name  [contest_n];//type_t是指数组的元素类型//const_n是一个常量表达式,用来指数组的大小介绍一下strlen和sizeof的区别strlen和sizeof没什么关联strlen是求字符串长度的,只能根据字符串......
  • 二维费用背包
    二维费用背包题目描述有\(N\)件物品和一个容量是\(V\)的背包,背包能承受的最大重量是\(M\)。每件物品只能用一次。体积是\(v_i\),重量是\(m_i\),价值是\(w_i\)。求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。输出最大价......
  • 旋转矩阵的左乘和右乘
    旋转变换左乘为坐标系变换由body坐标系转换到world坐标系\[R_wc=R_wb*R_bc\]右乘为坐标系下的变换world坐标系下i的位置变换到j的位置\[R_wj=R_wi*R_ij\]......