前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多维数组的传递

多维数组的传递

作者头像
Zoctopus
发布2018-06-04 11:35:42
2K0
发布2018-06-04 11:35:42
举报

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

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

代码语言:javascript
复制
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列的二维数组的所有构成元素赋上同样的值
代码语言:javascript
复制
#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('\n');
    }
 } 
 
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---\n"); mat_print(x,2);
    printf("---y---\n"); mat_print(y,4);
    
    return 0; 
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码示例:为n行3列的二维数组的所有构成元素赋上同样的值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档