呼哈865
2021-05-15 15:30
采纳率: 25%
浏览 30

C语言中二维数组指针在自定义函数中如何定义形参?

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 快乐鹦鹉 2021-05-15 16:09
    已采纳
    void sort(int **p)
    
    {
    
        int t;
    
       for(int i=0;i<4;i++)
    
          for(int j=0;j<4;j++)
    
          {
    
    t = p[i][j];
    
    p[i][j] = p[j][i];
    
    p[j][i] = t;
    
    }
    
    } 
    点赞 1 评论
  • qfl_sdu 2021-05-15 16:35

    void sort(int* a[])传入的是一个指针数组。

    可以使用 void sort(int **a)传二维数组。

    对于int a[m][n]={}定义的二维数组,可以等价为m*n的一维数组int a[m*n];

    自定义函数中建议不要使用二级指针,容易出错。

    如有帮助,请采纳一下,谢谢。

    代码如下:

    
    #include <stdio.h>
    
    void sort(int **p)
    {
    	int t;
    	for(int i=0;i<4;i++)
    	{
    		for(int j=0;j<4;j++)
    		{
    			t = p[i][j];
    			p[i][j] = p[j][i];
    			p[j][i] = t;
    		}
    	}	
    }
    int main()
    {
    	int **b = new int*[4];
    	for (int i = 0;i <4;i++)
    	{
    		*b = new int[4];
            for (int j = 0;j < 4;j++)
    		{
    			(*b)[j] = j; //赋值
    		}
    	}
    	sort(b);
        getchar();
        getchar();
        return 0;
    }
    点赞 1 评论

相关推荐 更多相似问题