标题:帮忙解决下这个程序题
只看楼主
不懂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



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




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

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