怎么把二元数组传入子函数

 时间:2026-02-14 16:16:31

1、在编写接收二元数组作为参数的子函数时,需要在函数形参列表中指定数组的两个维度,比如

    void print_element(int a[2][2]);

而不能只传入数组名,将两个维度信息空缺:

    void print_element(int a[][]);  //This is wrong

2、这里是一个简单的传入二元数组并打印数组元素的例子:

#include <stdio.h>

void print_element(int a[2][2])

{

    for(int i = 0; i < 2; i++)

        for(int j = 0 ; j < 2; j++)

            printf("%d  ", a[i][j]);

}

int main(void) { 

    int a[2][2] = {1,2,3,4};

    print_element(a);

    return 0;

}

怎么把二元数组传入子函数

3、传入二元数组名作为子函数的参数后,子函数中对数组元素的操作实际上就是对内存中数组元素进行的操作,而不是子函数调用结束后原二元数组内容不发生改变。比如下面的程序中,在子函数中对数组元素进行更改,而主函数中,数组元素也发生了改变:

#include <stdio.h>

void change_element(int b[2][2])

{

    for(int i = 0; i < 2; i++)

        for(int j = 0 ; j < 2; j++)

            b[i][j]++;

}

int main(void) { 

    int a[2][2] = {1,2,3,4};

    change_element(a);

    for(int i = 0; i < 2; i++)

        for(int j = 0 ; j < 2; j++)

            printf("%d ", a[i][j]);

    return 0;

}

怎么把二元数组传入子函数

1、如果子函数没有在形参列表中指定数组的两个维度,而是期望将两个维度信息按照变量单独传入,如

    void print_element(int a[][], int d1, int d2);  //This is wrong

那么编译器会报错:

error: declaration of ‘a’ as multidimensional array must have bounds for all dimensions except the first

 void change_element(int a[][], int d1, int d2)

意思就是说对于多维数组a,它的每个维度必须有边界限制,即需要传入维度大小。

怎么把二元数组传入子函数

怎么把二元数组传入子函数

  • 沉沦之心原神四件套作用
  • ArrayList如何求并集
  • 我的世界电脑版怎么联机?
  • 怎么使用pr制作变声器效果
  • 阴阳师怎么快速升到35级
  • 热门搜索
    牛栏奶粉怎么样 怎么查微信注册时间 亚麻籽油怎么吃 西洋参怎么吃 卫生间防水怎么做 手机怎么格式化 学习目标怎么写 胃炎怎么治疗 怎么写作文 佚名怎么读