C语言用指针求两个矩阵的差,求破C语言用指针和函数求转置矩阵

int a[5][5], 可以拆开来写就比较容易理解

int *a[5]; // 宣告了五个int的指针

int a0[5], a1[5], a2[5], a3[5], a4[5]; // 宣告了五个数组, 每数组含5个int

a[0]=&(a0[0]); // 把相对应数组的地址写入a[n]指针

a[1]=&(a1[0]);

a[2]=&(a2[0]);

a[3]=&(a3[0]);

a[4]=&(a4[0]);

然后回到你的问题 *(*(p+j))+i)到底是什么

p是指针, 是int的指针, 指针的意思就是它的内容是个某个内存的地址

p+j, 就是地址的加法运算, 如果p是1000, j是3, 运算的结果就是1000+3*4, 乘4是因为它是int的指针, int是4字节

而*(p+j), 是指调用地址1012的内容, 用另一种常用的方法写你就会明白

*(p+j) 跟 p[j] 是同一个意思

同样*(*(p+j)+i) 跟 p[j][i] 也是同一个意思

再问: 大神

但是我的b[i][j]=*(*(p+j)+i)

就是将矩阵转置放入b数组里有错么为什么编译说错了求指教我用了行指针

再答: p 跟 a不能就这样关联上的

你把p=a;

改成

p[0]=a[0];

p[1]=a[1];

p[2]=a[2];

p[3]=a[3];

p[4]=a[4];

那就可以通过编译了

再问: 好吧对谢以后还请多指教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值