使用二维指针,实现单位矩阵(z)

这篇博客介绍了如何通过二维指针在C语言中实现一个函数,该函数接收一个10x10的整型矩阵并判断其是否为单位矩阵。单位矩阵的特征是主对角线上的元素为1,其余元素为0。函数不使用下标引用,而是利用指针计算元素的偏移地址进行检查。
摘要由CSDN通过智能技术生成

/*

单位矩阵就是一个正方形矩阵,它除了主对角线的元素值为1以后,其余元素值均为0,
如:

  1 0 0
  0 1 0 
  0 0 1
编写一个名叫identity_matrix函数,它接受的是一个10*10整形矩阵为参数,并返回一个布尔值,提示该矩阵是否为单位矩阵。

注意:已经给出是10*10的

再注意:不能用下标引用,只能用指针


使用二维数组作为二级指针传参数时,只要找到对应的x,y的偏移地址即可,

*/

 

#include <stdio.h>
bool identity_matrix(int **mat, int nNum)
{
    int sum = 0;
    int *pnCur;
    int *pnXAddr = (int *)mat; // jernymy 找到数组的首地址,做为X的首地址

    for (int a = 0; a < nNum; a++)
    {
        for (int b = 0; b < nNum; b++)
        {    
            pnCur = ((pnXAddr + a * nNum) + b); // jernymy 因为二维数组成了一维数组,所以要找到y对应偏移地址
            if (*pnCur != 0 && *pnCur != 1) // jernymy 如果该值既不为0,同时也不为1,则不是。
            {
                r
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值