| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 510 人关注过本帖
标题:数组问题 地址差怎么计算的
只看楼主 加入收藏
孤独一生
Rank: 2
来 自:四川达县
等 级:论坛游民
帖 子:45
专家分:55
注 册:2013-4-1
结帖率:56.25%
收藏
已结贴  问题点数:10 回复次数:4 
数组问题 地址差怎么计算的
char ch='e',*ptr;
char s1(10)="abc edcf";//如果这里的数组保存的字符串是abc decf ,ch字符变量是e
int n;
ptr=strchar(s1,ch);//查找到了字符返回的值是它的位置还是什么,比如e在数组里面被找到了返回的值是不是6
n=ptr-s1;//计算出该字符的位置 怎么计算的 原理详细,ptr-s1怎么算的
搜索更多相关主题的帖子: 字符串 
2014-07-26 07:29
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:4 
数组的内容是连续的

~~我的明天我知道~~
2014-07-26 11:15
a123sun3
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2014-7-25
收藏
得分:4 
1.strchr返回值:找出在字符串 s1 中与 ch 相同的字符 X ,返回 X 在内存中的位置(即ptr)。  

2.返回值不是6,而是一个很大的数。

3.s1 可以作为该字符串在内存中的首地址(第一个字符所在的位置), 而字符串的内容(即字符)在内存中是连续的,所以 ptr-s1 就是ch在s1中的位置。

另:ptr-s1 应该是 5,因为数组的第一个位置是从 0 开始的。
2014-07-26 11:36
a123sun3
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2014-7-25
收藏
得分:0 


[ 本帖最后由 a123sun3 于 2014-7-26 11:57 编辑 ]
2014-07-26 11:39
j521887
Rank: 2
等 级:论坛游民
帖 子:26
专家分:42
注 册:2014-7-21
收藏
得分:4 
就是返回的目的地址减去首地址,不过我觉得其差应该是n=qi-str+1;zhiyu
2014-07-31 13:33
快速回复:数组问题 地址差怎么计算的
数据加载中...
 
   



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

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