| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 342 人关注过本帖
标题:关于指针指向字符串的问题
只看楼主 加入收藏
a462410594
Rank: 2
等 级:论坛游民
帖 子:75
专家分:64
注 册:2011-11-17
结帖率:90%
收藏
已结贴  问题点数:15 回复次数:4 
关于指针指向字符串的问题
#include<sting.h>
char *ss(char *s)
{
   char *p,t;
   p=s+1;t=*s;
   while(*p)
   {
        *(p-1)=*p;
          p++;
 }
   *(P-1)=t;
   return s;
}
main()
{
 char *p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}   
答案是  bcdefgha
但不理解*(p-1)=t  的作用是什么。请解答一下,9月22号就要考2级c语言的了,有什么好建议呢?
搜索更多相关主题的帖子: 字符串 return 
2012-09-03 20:16
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:4 
   while(*p)
   {
        *(p-1)=*p;
          p++;
}
while() 实现的是把字符串第一个字符删掉 后面的往前跟

   *(P-1)=t; //和这个有什么区别呢p
这个想实现的是把首字母放字符串最后 可惜写错了

如果你不会分析得好好努力了 虽然二级简单但基础差要过也不容易罢
2012-09-03 20:31
a462410594
Rank: 2
等 级:论坛游民
帖 子:75
专家分:64
注 册:2011-11-17
收藏
得分:0 
回复 2楼 zklhp
第一个字符怎么会被删了呢?*(p-1)=*p  的意思是第一个和第二个对换,第二个和第三个对换,
2012-09-03 20:55
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:11 
abcde

开始是p指向b 则 *(p-1) = *p 后 是bbcde
然后p指向c 执行后是bccde
再 bcdde
再 bcdee
此时p指向结尾的0
然后 因为开始在t里存了个a 所以 *(p-1)=t 变成bcdea

如果你理解成对掉就再看看 我觉得我说的够明白了

记得结题 祝考试顺利
2012-09-03 20:59
a462410594
Rank: 2
等 级:论坛游民
帖 子:75
专家分:64
注 册:2011-11-17
收藏
得分:0 
回复 4楼 zklhp
谢啦!
2012-09-03 21:18
快速回复:关于指针指向字符串的问题
数据加载中...
 
   



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

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