zoukankan      html  css  js  c++  java
  • 多维数组的传递

    接收多维数组的函数,可以省略相当于开头下标的n维的元素个数。但是,(n - 1)维之下的元素个数必须是常量。

    以下是接收一维、二维、三维数组的参数的声明示例:

    void func1(int v[],       int n);  //元素类型为int、元素个数随意(n)。 
    void func2(int v[][3],    int n);  //元素类型为int[3]、元素个数随意(n)。 
    void func3(int v[][2][3], int n);  //元素类型为int[2][3]、元素个数随意(n)。 

    注:所接收的数组的元素类型必须固定,但元素个数是自由的。

    代码示例:为n行3列的二维数组的所有构成元素赋上同样的值

    #include<stdio.h>
    
    //将v赋值给元素类型为int[3]、元素个数为n的数组m的所有构成元素
    void fill(int m[][3],int n,int v)
    {
        int i,j;
        for(i = 0;i < n;i++)
            for(j = 0;j < 3;j++)
                m[i][j] = v;
     } 
     
    //显示元素类型为int[3]、元素个数为n的数组m的所有构成元素
    void mat_print(const int m[][3],int n)
    {
        int i,j;
        for(i = 0;i < n;i++){
            for(j = 0;j < 3;j++)
                printf("%4d",m[i][j]);
            putchar('
    ');
        }
     } 
     
    int main()
    {
        int no;
        int x[2][3] = {0};  //2行3列:元素类型为int[3]、元素个数为2
        int y[4][3] = {0};  //4行3列:元素类型为int[3]、元素个数为4
        
        printf("赋给所有构成元素的值:");
        scanf("%d",&no);
        
        fill(x,2,no);
        fill(y,4,no);
        
        printf("---x---
    "); mat_print(x,2);
        printf("---y---
    "); mat_print(y,4);
        
        return 0; 
    }

  • 相关阅读:
    C/C++中的堆、栈和队列
    网卡工作状态检测
    Delphi 2007 的midas程序注册问题
    使用SQL语句备份与恢复数据库
    C/C++中的堆、栈和队列
    Delphi 2007 的midas程序注册问题
    如何使用VirtualBox的共享文件夹(转)
    如何使用VirtualBox的共享文件夹(转)
    C语言struct的使用
    printf常用格式
  • 原文地址:https://www.cnblogs.com/OctoptusLian/p/8529176.html
Copyright © 2011-2022 走看看