鱼C论坛

 找回密码
 立即注册
查看: 1265|回复: 9

[已解决]求助二维数组指针移动的问题

[复制链接]
发表于 2020-2-28 11:08:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

int main()
{
        int *p ;
        int a[3][4] = {
        { 1, 2, 3, 4 },
        { 5, 6, 7, 8},
        { 9, 10, 11, 12}
        } ;
        for ( p = a[0] ; p < a[0]+12; p++ )
        {
                if ( ( p - a[0] )%4 == 0)
                {
                        printf ("\n") ;
                }
                printf ("%4d",*p) ;
        }
    return 0;
}

那个if语句的作用是换行,但我不明白的是:明明是整型,指针移动一个元素就在地址上+4,对4取余后就该换行。求解答
最佳答案
2020-2-28 11:33:08
因为这个数组的长度就是4,所以如果可以整除4就代表
已经到结尾了,所以要换行
如果有帮助,请设最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-28 11:10:11 | 显示全部楼层
我自己想的是那个if语句中的4被编译器转成了4*4, 不知道这样理解算不算对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 11:33:08 | 显示全部楼层    本楼为最佳答案   
因为这个数组的长度就是4,所以如果可以整除4就代表
已经到结尾了,所以要换行
如果有帮助,请设最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 11:45:47 | 显示全部楼层
北有樵先生 发表于 2020-2-28 11:10
我自己想的是那个if语句中的4被编译器转成了4*4, 不知道这样理解算不算对

并不是,只是代表了一行,如果到底了就换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 11:46:59 | 显示全部楼层
我刚才想了想,p= a[0] 表示的是0行0列元素的地址,p+1 = a[0]+1 ,这表示的是0行1列元素的地址,所以( p - a[0] )%4 == 0 表示当 p自加到 a[0] + 4 时,( p - a[0] )%4 == 0 表该换行了

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 11:49:04 | 显示全部楼层
qiuyouzhi 发表于 2020-2-28 11:33
因为这个数组的长度就是4,所以如果可以整除4就代表
已经到结尾了,所以要换行
如果有帮助,请设最佳答案 ...

可能你没理解到我的问题,我是把  a[0]+1 - a[0] 直接当地址计算了, 现在想明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 11:50:01 | 显示全部楼层
北有樵先生 发表于 2020-2-28 11:49
可能你没理解到我的问题,我是把  a[0]+1 - a[0] 直接当地址计算了, 现在想明白了

呃呃呃
那你现在还有哪里不懂?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 11:53:27 | 显示全部楼层
北有樵先生 发表于 2020-2-28 11:49
可能你没理解到我的问题,我是把  a[0]+1 - a[0] 直接当地址计算了, 现在想明白了

如果没有就把问题改成已经解决
或者设个最佳答案吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 11:56:47 | 显示全部楼层
qiuyouzhi 发表于 2020-2-28 11:53
如果没有就把问题改成已经解决
或者设个最佳答案吧

已经解决在那里改?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 11:57:35 | 显示全部楼层
北有樵先生 发表于 2020-2-28 11:56
已经解决在那里改?

编辑帖子那里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 22:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表