| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 360 人关注过本帖
标题:帮忙解决下这个程序题
只看楼主 加入收藏
不懂C编程
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2009-10-17
结帖率:100%
收藏
 问题点数:0 回复次数:3 
帮忙解决下这个程序题
下列程序的运行结果是
#include"stdio.h"
#include"string.h"
char *ss(char *s)
{
    return s+strlen(s)/2;
}
void main()
{
    char *p,*str="abcdefgh";
    p=ss(str);
    printf("%s\n",p);
}

答案:efgh
看不懂题义,也不知道具体咋回事,谁能详细的讲一下。
搜索更多相关主题的帖子: include return 
2009-10-17 11:22
sen_lin
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:114
专家分:436
注 册:2009-3-24
收藏
得分:0 
调用函数的意思:原来的*s指向的是字符串的第一个字符,经过操作后,返回的指针指向的是向后推移了strlen(s)/2个的那个字符,原题中也就是e,所以输出的就是efgh
2009-10-17 11:35
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
没什么太多值得注意的,重点理解s+strlen(s)/2  strlen是求字符串长度,除2就是求字符串的一般长度,s是字符串的首地址,+上strlen(s)/2,就是把s指向后面的strlen(s)/2元素,然后结果(地址)赋给s。
exit(0);

我可好玩啦...不信你玩玩^_^
2009-10-17 12:00
mfh
Rank: 6Rank: 6
等 级:侠之大者
帖 子:179
专家分:411
注 册:2009-5-31
收藏
得分:0 
没意思
2009-10-17 21:15
快速回复:帮忙解决下这个程序题
数据加载中...
 
   



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

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