标题:二维数组指针
只看楼主
JENNET
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-5-28
 问题点数:0 回复次数:9 
二维数组指针

#include "stdio.h"
main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int (*p)[4]=a,i,j,k=0;
for (i=0;i<3;i++)
for (j=0;j<2;j++)
k=k+*(*(p+i)+j);
printf("%d\n",k);

}

p=0,i=j=0,k=3.

p=0,i=0,j=1,k=3+5=8.

p=0,i=1,j=0,k=8+7=15.

p=0,i=j=1,k=15+9=24.

p=0,i=2,j=0,k=24+11=35.

p=0,i=2,j=1,k=35+13=48.

我错哪了?结果是60.

搜索更多相关主题的帖子: 指针 int main include stdio 
2006-06-25 16:55
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
得分:0 
以下是引用JENNET在2006-6-25 16:55:57的发言:

#include "stdio.h"
main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int (*p)[4]=a,i,j,k=0;
for (i=0;i<3;i++)
for (j=0;j<2;j++)
k=k+*(*(p+i)+j);
printf("%d\n",k);

}


我的原则很简单:不做不喜欢的事!
2006-06-25 17:03
JENNET
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-5-28
得分:0 
p指向数组a的首址,p的地址都为0,当i=j=0时,*(p+i)变量得到1的值,而*(*(p+i)+j)变量得到3的值,所以第一次k=3,这样理解对吗?...以下的取值我都是这样做,哪不对了?

CGCHINA REVOLUTION.....
2006-06-25 17:15
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
得分:0 
你的程序没错,红色那部分你肯定理解错了。好好想一想。

我的原则很简单:不做不喜欢的事!
2006-06-25 17:39
huangtaomvp
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-4-23
得分:0 

#include "stdio.h"
main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int (*p)[3]=a,i,j,k=0;
for (i=0;i<=3;i++)
for (j=0;j<=2;j++)
k=k+*(*(p+i)+j);
printf("%d\n",k);

}运行正确


2006-06-25 17:59
JENNET
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-5-28
得分:0 
(*p)[4]=a,一个有4个元素的一维数组指针指向数组a的首址,这时p在元素7的位置,通过引用二维数组元素求和,7+9+9+11++11+13=60,这样理解总该对了吧?不对的请指正...點解..

CGCHINA REVOLUTION.....
2006-06-25 21:38
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
得分:0 
以下是引用JENNET在2006-6-25 21:38:12的发言:
(*p)[4]=a,一个有4个元素的一维数组指针指向数组a的首址,这时p在元素7的位置,通过引用二维数组元素求和,7+9+9+11++11+13=60,这样理解总该对了吧?不对的请指正...點解..

不对。楼主可以追踪循环每一步怎样执行。

for (i=0;i<=3;i++)
for (j=0;j<=2;j++)
{ //在这里加对花括号看看每一步K的值,然后自己再想想,祝楼主成功
k=k+*(*(p+i)+j);
printf("%d\n",k);
}


我的原则很简单:不做不喜欢的事!
2006-06-25 22:19
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-25 22:46
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-25 22:51
JENNET
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-5-28
得分:0 
THANKS,知道怎么做了.

CGCHINA REVOLUTION.....
2006-06-25 23:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-74730-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.257156 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved