C语言中:二维数组能否作为函数参数,如何定义?

问题描述

C语言中:二维数组能否作为函数参数,如何定义?
二维数组能否作为函数的参数进行单独的定义和使用?
将?个二维数组的行和列交换,存储到另外一个数组中去,该如何定义函数实现呢?

解决方案

C语言中,数据名做函数的参数后,会退化为指针。
没有必要使用指向指针的指针,使用指针就可以了;另外,将是几维数组、和每一维的大小也做为参数传入函数就可以的。

解决方案二:
可以作为函数参数传,但一般不这样做,一般传的是 指向该二维数组的指针~

解决方案三:
二维数组作为函数参数(C语言)
C/C++ 二维数组作为函数参数
二维数组中的查找及C语言中二维数组做函数参数

解决方案四:
void f(int *a[ ]); //a可以看作二维数组

解决方案五:
数组传递用指针,将一个数组做一些操作然后放到另一个数组里去可以给2个数组指针参数,一个原数组,一个接收数组,就像strcpy那样。

解决方案六:
int array[][L1][L2];
需要知道数组的第二和第三维长度

解决方案七:
**p可以指向二维数组的

解决方案八:
肯定可以啊!但是这样做不觉得麻烦么?直接传指针吧

解决方案九:
没有必要使用指向指针的指针,使用指针就可以了;另外,将是几维数组、和每一维的大小也做为参数传入函数就可以的。

时间: 2024-11-02 03:19:38

C语言中:二维数组能否作为函数参数,如何定义?的相关文章

二维数组问题-二维数组给子函数传递值的问题

问题描述 二维数组给子函数传递值的问题 给子函数传递一个二维数组时,在子函数定义那int Sum(int arr[ ][3])是正确的,而int Sum(int arr[3][ ])错误,这是为什么? 解决方案 一个二维数组的行数(由二维数组的第一个下标指定)不是必需的,而列数(由第二个下标指定)是必需 编译器用这个形参中的二维数组的列数来确定元素的位置(在内存中).对二维数组来说,每一行是一个一维数组.要找到某个特定行中的元素,编译器必须准确地知道每一行有多少个元素,然后才能在访问数组时跳过确

js怎么在function间传二维数组

问题描述 js怎么在function间传二维数组 我在一个function中定义了一个二维数组,想将这个二维数组当做参数传给另一个function ,怎么操作,求代码!!! 解决方案 请参考以下链接 JavaScript问题.能否在JS函数之间互相传递二维数组?http://zhidao.baidu.com/link?url=dogQO63WK_tuXcaCKurqCarVF41pMbtqWKqSau1eJ7aKvK9acNaiX9gG6p6RcmgOnD4fLzStn_QusvWG2M4DKq

二维数组传参单层指针的问题

问题描述 二维数组传参单层指针的问题 问题: 本人想写一个函数用来给二维数组赋值,函数原型如下: void Input(uchar row, uchar line, double *array) { uchar count; for(count=0; count<(row*line); count++) scanf("%1f", array+count); } 将1~9数字赋值给数组之后发现数组里的内容为: 不知道为什么,求指教! 解决方案 scanf,输入需要变量的地址,而 a

二级指针创建二维数组

问题描述 二级指针创建二维数组 1) 编写函数CreateMatrix( int **a,int n, int m),生成一个n行.m列的矩阵,矩阵中的元素由随即函数rand()生成(范围1~99). 解决方案 #include <stdio.h> #include <stdlib.h> #include <time.h> void CreateMatrix( int **a,int n, int m) { int i,j; a = (int**)malloc(n*si

一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

 打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h>   void main(void) {     int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };     for (int *p = a; p < a + 10;p++)  //指针类型决定4个字节     {         printf("\n%p,%d", p, *p);    

Swift游戏开发之俄罗斯方块:No.3 二维数组

数组是一个很有用的数据结构,很多程序都建立在数组之上,我很少看到哪个应用程序不用到数组的. 而我们的俄罗斯方块显然也需要数组,而且是更为特殊的  二维数组. 为什么是二维数组呢?其实我们的整个游戏区域,可以看做是一个二维数组区域,就像这样: 我们的每一个block都占据在这样一个20x10的区域之内,20行,10列的一个200个block的二维数组让我们可以根据(x,y)坐标来确定block的位置,而这些blocks其实就是组成我们的L形,或者Z形 等等不同但我们都熟知的俄罗斯方块: swift

定义JavaScript二维数组采用定义数组的数组来实现_基础知识

1. javaScript没有提供直接定义二维数组的方法,但可以使用定义数组的数组来定义JavaScript二维数组:例如定义一个 4X3二维数组a可以采用如下方法: var a=new Array(); a[0]=new Array(); a[1]=new Array(); a[2]=new Array(); a[3]=new Array(); 下面是一个事例 复制代码 代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/

[总结]C语言二维数组作为函数的参数

前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: 1 #include <cstdio> 2 void print(int *a[3]) 3 { 4 printf("%d\n",a[0][0]); 5 } 6 7 int main() 8 { 9 int a[2][3] = {1,2,3,4,5,6}; 10 print(a); 11 return 0

二维数组与指针-C语言二维数组中的*(p+1)的确切含义

问题描述 C语言二维数组中的*(p+1)的确切含义 各位大师们,烦请指教一二吧.如果是在一维数组中,*(p+1)表示p+1这个地址空间或空间中的值,那么在二维数组中,p+1是指向a[1]*(p+1)是a1这个地址中的值啊?可是为什么会是地址呢? 解决方案 二维数组其实是一个小戏法,本质上还是一维数组--二维下标连续构成的数组又连续构成第一维下标.你可以像遍历一维数组那样遍历它 解决方案二: 其实a[2][3]的调用可以看成是两个调用,首先是对a进行[2]操作,然后再对a[2]的返回值进行[3]操