C语言中怎样在调用函数中使用二维数组和指针, 返回的类型是一个二维数组的首地址,怎么操作?

如题所述

二维数组的本质还是一位数组
返回数组指针就可以
int a[3][10];//假设全局
int * func()
{
return a; //返回的就是数组的指针

}

int main(void)
{
int *b;

b=func(); //这里b就指向数组地址
return 0;

}追问

二维数组呢?

追答

这里的b指针已经指向二维数组了
下面是分析,不是代码
b=a
*(b+1)=*(a+1)=a[0][1]
*(b+2)=*(a+2)=a[0][2]
...
*(b+10)=*(a+10)=a[1][0]
...
依次类推

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言函数中怎么返回一个二维数组
1、我们首先定义一个二级指针和一个行列变量[int ** array,row,column;]。2、然后我们编写进入行和列的语句,代码如图所示。3、接下来我们可以用一维数组打开一维一维数组。4、接下来,我们使用[array [i] =(int *)malloc(sizeof(int)* column);]来为数组再次生成包含该数组的新数组。5、...

c语言中怎么用二维数组作为函数参数
二维数组作为函数参数,实参可以直接使用二维数组名,在被调用函数中对形参数组定义可以指定所有维数的大小,也可以省略第一维的大小说明,如:它们是合法且等价,也可以使用如下形式:但不能省略第二维的大小,如下面的定义是不合法的,编译时会出错:因为从实参传递来的是数组的起始地址,如果在形参中不说...

C语言,函数中如何返回二维数组,用return和不用return两种方法?
return 就直接返回可以了 不用return 就将二维数组的指针或者引用作为参数

C语言指针与二维数组求解
从int、short、long、double、char、char*、到char a[3],到int aa[5],再到struct a{ int a, char c; } aa ;我们可以看到可以共可分为三种,第一是最基本的类型,比如:int、short、char等...第二是在最基本的类型上扩充而来的,也就是数组,由多个相同类型组成的,第三种则是由不同的类型组成的,也就是...

C语言函数封装要输出一个二维数组 怎么封装及引用
int output(int *p,int n,int m)\/\/指针,1维数,2维数。{ int i;int j;for(i=0;i<n;i++){ for(j=0;j<m;j++){ printf("%5d",*(p+m*i+j));} printf("\\n");} return 0;} int main(){ int a[2][3]={{4,5,6},{1,2,3}};output(&a[0][0],2,3); \/\/...

如何用c语言实现二维数组?
使用 C 语言实现二维数组可以通过以下步骤:1. 声明一个二维数组变量:首先,需要声明一个二维数组变量来存储数据。声明二维数组需要指定数组的行数和列数,并可以给数组命名。2. 初始化二维数组:可以选择在声明二维数组时初始化,或者在后续的代码中初始化数组。可以使用循环结构来遍历数组的每个元素,并...

如何通过函数调用二维数组
C语言编程的过程中,不可避免的会碰到二维或二维以上的数组作为函数的形参的情况,在以前的编程过程中,习惯了动态数组的应用,很是使用直接定义高维数组。最近在编程的过程中就碰到了这个问题:有如下的测试程序:voidtest(double **x,int Row,int Col);voidtest(double **x){ for(int i=0...

求c语言指针方式引用二维数组问题
a[0]代表第一组首元素地址,当然,a[0]也指向数组首元素的地址,a[0]=&a[0][0];a是对a取值,它取出的是a[0],当然=&a[0][0];&a[0]指a[0]的地址,还是它自己,所以&a[0]=&a[0][0]。所以,第一行个打印语句输出的5个内容都是一样的,所以,输出5个19ff0c。是a[0][0...

C语言怎么定义一个字符指针指向一个二维字符数组的首地址
二维数组也是“数组的数组”所以定义一个指向由m个元素组成的一维数组指针即可指向二维数组的首元素地址。如:char arr[2][2] = { { 'a', 'b' }, { 'c', 'd' } };char (*p)[2];p=arr; \/\/ p指向首元素地址。char c = *(p[0]+ 1);\/\/ 指向0行1列 即字符b ...

c语言中如何引用二维数组
1.先声明再初始化 例如:\/\/1.声明 int[] nums;\/\/初始化 nums = new int[5];2.声明并初始化 例如:\/\/2.声明、初始化 int[] nums = new int[10];3.创建数组同时赋值 例如:\/\/3.创建数组同时赋值 String[] names=new String[]{"大名","小米","夏雨荷"};int[] ages=new int[]{...

相似回答