| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 820 人关注过本帖
标题:来来来,大家来理解下这三行代码
取消只看楼主 加入收藏
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
结帖率:97.5%
收藏
 问题点数:0 回复次数:1 
来来来,大家来理解下这三行代码
程序实现一个strcmp函数。

int i = 0;
while(*(p1 + i) == *( p2 + i))
if (*(p1 + i++) == '\0' ) return 0;
return *(p1 + i) - *(p2 + i);

我是这么理解的。因为p1和p2首地址值相等, 他们的首地址就相等了。

if语句中*(p1 + i++) 就是p1 指向他下一个地址值, p2也指向他下一个地址值。当比较到最后都没结束循环就说明
p1 和 p2 指向同一块地址单元。

下面就是当两个地址值不同就比较其ascll码值,并结束循环。

我想问的是, while控制if语句下的两个return只算一条语句吗?

就像while()    if else if else   算一条语句。还有就是帮我看看我的理解有没有问题
搜索更多相关主题的帖子: return 
2017-04-02 16:07
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
收藏
得分:0 
回复 3楼 xzlxzlxzl
谢谢大神,分析得很详细。
2017-04-03 12:15
快速回复:来来来,大家来理解下这三行代码
数据加载中...
 
   



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

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