| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 590 人关注过本帖
标题:关于指针的一个问题,高手指点:
取消只看楼主 加入收藏
dianziwg
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-11-17
收藏
 问题点数:0 回复次数:2 
关于指针的一个问题,高手指点:
#include <stdio.h>

main()
{int a[2][3]={1,2,3,4,5,6};
int *p1,(*p2)[3];
p1=a[0];
for (;p1<a[0]+6;p1++)
printf("%4d",*p1);
printf("\n");
p2=a;
for(;p2<a+2;p2++)
printf("%4d",*(*p2));
}
结果是显示
1 2 3 4 5 6
1 4


以上程序是书中的一个例题,使用不同指针类型定位一个二维数组,第一个循环中的p1<a[0]+6结束循环自己能理解,但下面的p2<a+2结束循环无法理解,(我是这么理解:循环开始时,P2指向a[0][0],那p2肯定小于a+2,所以应该退出循环,怎么会显示出1,尔后自加后指向a[1][0],同样条件不符合,也不该显示4的啊)

望高手指点!!!多谢
搜索更多相关主题的帖子: 指针 
2008-08-26 21:17
dianziwg
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-11-17
收藏
得分:0 
只能看到P2地址的变化,所以无法理解它退出循环的原因!!
!!!!!!!!!!!!
2008-08-26 21:59
dianziwg
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-11-17
收藏
得分:0 
非常感谢楼上几位高手解答!!
从改换循环条件看,csynyk兄的答案正解,看样子看书不够用功,理解出现偏差!!望楼上各位以后多多指教啊!!
2008-08-27 21:32
快速回复:关于指针的一个问题,高手指点:
数据加载中...
 
   



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

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