c语言二维数组函数声明,c语言二维数组函数的使用方法

C语言二维数组声明时能否使用变量 如int a=4; int b=3; int matrix[b][a];

嗯 在C语言中直接用int声明数组是不可以的(C标准这样规定。即使在某个编译器上这样做成功了,也不建议这样做,程序应该符合规范)。

公司主营业务:成都网站制作、成都网站建设、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出山城免费做网站回馈大家。

如果你想在程序运行的时候输入矩阵的大小,可以用malloc在堆区动态分配内存实现,具体做法如下:

#include "stdio.h"

void main(){

int row;

int col;

scanf("%d%d",row,col);

int** matrix=(int**)malloc(row*sizeof(int*));

int i=0;

for( ;irow;++i){

matrix[i]=(int*)malloc(col*sizeof(int));

}

for(i=0;irow;++i){

int j=0;

for( ;icol;++j){

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

}

}

//以上程序实现了在程序运行的时候建立大小从键盘输入的矩阵,并然后从键盘读入每个元素的值。

排版不好。。我觉得矩阵没必要去用一维数组怎样怎样映射(当然有时候极少时候可能考虑效率需要那样做)。。。平时这样做就可以了。。

如何用C语言malloc声明一个二维数组,比如我想声明一个 int a(5)(8)

malloc声明一个二维数组, 假定行数 NR=5, 列数NC=8:

int NR=5,NC=8;

int i,j;

int **a;

// scanf("%d %d", NR, NC); 你也可以在这里输入行数,列数,然后

// 动态分配:

a = (int **) malloc(sizeof(int *) * NR);

for (j=0;jNR;j++){

a[j] = (int *) malloc(sizeof(int) * NC);

}

// 假定这里赋初值:

for (j=0;jNR;j++) for (i=0;iNC;i++) {

a[j][i] = (j+1)*100 + i;

}

//输出数组元素值:

for (j=0;jNR;j++){

for (i=0;iNC;i++) printf("%3d ",a[j][i]);

printf("\n");

}

//释放内存的方法:

for (j=0;jNR;j++) free(a[j]);

free(a);

c语言中怎么用二维数组作为函数参数

二维数组作为函数参数,实参可以直接使用二维数组名,在被调用函数中对形参数组定义可以指定所有维数的大小,也可以省略第一维的大小说明,如:

它们是合法且等价,也可以使用如下形式:

但不能省略第二维的大小,如下面的定义是不合法的,编译时会出错:

因为从实参传递来的是数组的起始地址,如果在形参中不说明列数,编译器将无法定位元素的的位置。

c语言函数怎么传入一个二维数组

这样传:

函数声明:Func(变量类型 *[二维数组的列长] arry);

char arry[][4] ;

Func(arry);

C语言中如何将二维数组作为函数的参数传递

在C语言中可以用二维数组作为实参或者形参。

1、函数中用二维数组作为形参,函数声明中可以指定所有维数的大小,也可以省略第1维的维数如:

void f(int array[3][10]); //正确

void f(int array[][10]);  //正确

上面的两种二维数组形参表示都是正确的。

2、函数中用二维数组作为形参,不能把第2维或者更高维的大小省略,如下面的定义是不合法的:

void f(int array[][]); //错误

因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多少列,不能只指定一维而不指定第二维,下面写法是错误的:

void f(int array[3][]);  //错误

3、二维数组作为实参传递时,必须保证实参第2维的维数与形参第2维的维数相同,因为必须要保证形参和实参的数据类型一致。比如定义如下函数:

void f(int array[][10]);

可以将如下数组传递给函数f。

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

int b[4][10] = {1};


当前文章:c语言二维数组函数声明,c语言二维数组函数的使用方法
标题网址:http://myzitong.com/article/hdhogc.html