| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 916 人关注过本帖
标题:怎么理解这个元素地址运算?
只看楼主 加入收藏
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
(long)p-(long)a实际上和p-a一个道理。
收到的鲜花
  • Devil_W2010-02-22 15:17 送鲜花  -2朵   附言:我看你是没懂,没懂请勿装懂。

c语言刚开一学期,就换开VB...
2010-02-21 19:30
hzz063
Rank: 3Rank: 3
来 自:横县百合
等 级:论坛游侠
帖 子:80
专家分:114
注 册:2010-1-27
收藏
得分:0 
回复 9楼 Devil_W
是得0。4。8等,不过我是想知道这指针是怎么样运算的,恩看了这多位回复,也有所了解了

一切只因为喜欢。
2010-02-21 19:34
刘晓鹏
Rank: 2
等 级:论坛游民
帖 子:70
专家分:68
注 册:2010-1-4
收藏
得分:0 
#include "stdio.h"
void main()
{
    int *p,i,a[10]={1,2,3,4,5,6,7,8,9,10};
    p=a;  /*p指向a[0] 1245008这个地址*/
    for(i=0;i<10;i++)
    {printf("%d-%d=%d\n",p,a,p-a);
     p++;   /*1245008这个地址+4 因为int占4个字节*/

    }
}

1245008-1245008=0
1245012-1245008=1
1245016-1245008=2
1245020-1245008=3
1245024-1245008=4
1245028-1245008=5
1245032-1245008=6
1245036-1245008=7
1245040-1245008=8
1245044-1245008=9

 
我就是这样理解的。


[ 本帖最后由 刘晓鹏 于 2010-2-21 22:47 编辑 ]
2010-02-21 22:42
幸运之星
Rank: 4
来 自:吉林
等 级:业余侠客
帖 子:275
专家分:239
注 册:2009-6-5
收藏
得分:0 
这个就是你想要的吧 嘿嘿
你的问题出错在你用的是地址而不是地址的变量

程序代码:
#include "stdio.h"
void main()
{
    int *p,i,a[10]={1,2,3,4,5,6,7,8,9,10};
    p=a;
    for(i=0;i<10;i++)
    {
     printf("%d-%d=%d\n",*p,*a,*p-*a); 
     p++;
    }
}


2010-02-24 04:48
幸运之星
Rank: 4
来 自:吉林
等 级:业余侠客
帖 子:275
专家分:239
注 册:2009-6-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

附图
2010-02-24 04:49
快速回复:怎么理解这个元素地址运算?
数据加载中...
 
   



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

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