标题:请各位高手帮忙解决一道题!
只看楼主
bclt2009
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-24
结帖率:0
已结贴  问题点数:20 回复次数:5 
请各位高手帮忙解决一道题!
int a[3];
a[0]=0;a[1]=1;a[2]=2;
int *p,*q;
p=a;
q=&a[2];    a[q-p]=?
这个结果是什么?怎么算出来的!希望给为高手帮我看看!
搜索更多相关主题的帖子: 解决问题 
2009-07-24 10:41
bitjjj
Rank: 1
等 级:新手上路
帖 子:1
专家分:7
注 册:2009-7-24
得分:6 
两个指针相减就是两个指针之间的(地址差/sizeof(指针类型)),也就是相差的数组个数,p指向a[0],q指向a[2],q-p=2-0=2;
2009-07-24 10:59
lin52045
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:113
注 册:2009-7-24
得分:6 
虽然我也是菜鸟,但我个人认为应该是2
p=a就是说*p=a[0]所以p=0,q=&a[2]就是说q=2,所以a[q-p]=a[2-0]=a[2]=2
有错的话请高手指正

C语言入门新手,大家一起讨论学习!
2009-07-24 11:02
bclt2009
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-24
得分:0 
回复 2楼 bitjjj
谢谢你的回答,讲的很详细!
2009-07-24 11:03
bclt2009
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-24
得分:0 
回复 4楼 bclt2009
int main()
{
char a;
char *p=a;
strcpy(p,"test");
printf(p);
return 0;
}这个的结果是不是 t?
2009-07-24 11:10
文武两边随
Rank: 2
等 级:论坛游民
帖 子:40
专家分:39
注 册:2009-7-23
得分:6 
那么的话在内存中指针相减是怎么处理的呢?
比如
int *p1,*p2;
那么p1-p2是什么意思?
2009-07-24 19:20



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




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

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