5.动态实现二维数组的冒泡排序

问题:输入m*n的矩阵,升序排序,并输出。

分析思路:动态分配数组空间,需要用到malloc函数,则需要调用#include <malloc.h>库函数。

这里面利用二级指针,指向二维数组,实现空间分配。

二级指针知识: 例如:int **a;其中*a为行,**a为列。相当于int a[2][3] = int[3] a[2]中,*a则为2行也就是两个一维指针,每个指针有3个空间。

关于分配空间:最开始 a分配的空间的指针类型为 int*,因为*a为a[0][0]的指针,*(a+1)为a[1][0]的指针。它指向每一行的首地址,每一行的指针。也就是说*a为一维数组的一个指针,而**a则为a[0][0]内的值。

例如:

a[2][3]={ {1,2,3},

             {4,5,6} };

*a是指向a[0][0]位置的指针,*(a+1)指向a[1][0]位置的指针,依次类推。它是一个一维数组,类型为 int[3],即int*,因此分配指针a的空间时有 a = (int **)malloc(sizeof(int*)* 2); 

而**a则是a[0][0]内,具体的值,为1. **a+1,为a[0][1]的值2, **(a+1)则为a[1][0]内的值4.

代码如下:

#include <stdio.h>
#include<malloc.h>
void shengxu(int **a, int m, int
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔心小韩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值