鱼C论坛

 找回密码
 立即注册
查看: 2389|回复: 1

指针指向数组行问题,请看看。。。

[复制链接]
发表于 2013-12-10 18:35:30 | 显示全部楼层 |阅读模式

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

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

x
#include "stdio.h"
int main(void)
{
        int a[2][3]={{1,2,3},{4,5,6}},i,j;
        int (* zhizhen_a)[3];
        zhizhen_a=a;   
        for(i=0;i<2;i++)
                for(j=0;j<3;j++)
                        printf("%d ",(* zhizhen_a+i)[j]);

}

请问 为什么输出结果是1 2 3 2 3 4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-10 21:12:29 | 显示全部楼层
我觉得应该是这样解释:
1.   int (* zhizhen_a)[3];  定义了一个有三个元素的一位数组指针,
2.   zhizhen_a=a;          把a给了zhizhen_a,这时
zhizhen_a[0] == a[0]==1,
zhizhen_a[1] == a[1]==2,
zhizhen_a[2] == a[2]==3,
3.  for循环第一次打印了zhizhen_a[0..2]就是1,2,3,第二次循环打印了zhizhen_a[1..3],这里的zhizhen_a[3]越界了,所以是2,3,4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 15:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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