| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 413 人关注过本帖
标题:求助,一个貌似简单的程序难住我了
只看楼主 加入收藏
lgxfxh
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-12-9
结帖率:0
收藏
 问题点数:0 回复次数:2 
求助,一个貌似简单的程序难住我了
下面函数输出结( )
#include <stdio.h>
main()
{
    char a[]="1234567",*cp1,*cp2,s;
    cp1=a;cp2=a+6;
     printf("%d\n" ,*cp2);   
      while(cp1<cp2);
       {s=*cp1++;*cp1=*cp2--;*cp2=s;
       }
     printf("%s" ,a);
     system("PAUSE");
}
输出结果是55,1711717。谁能帮我分析一下1711717的来历?谢谢!
搜索更多相关主题的帖子: include 
2014-04-12 20:44
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
呵呵,你老扣哇,0分贴。
#include <stdio.h>
main()
{
    char a[]="1234567",*cp1,*cp2,s;

    cp1=a;cp2=a+6;
     printf("%d\n" ,*cp2);   
      while(cp1<cp2)
       {
           s=*cp1++;        // s = *cp1++ = *(cp1++)=1,cp1++,先用值再自加,此时cp1指向‘2’
           *cp1=*cp2--;        // *cp1=*cp2-- = *(cp2--)=7,cp2--,先用值再自减,此时cp2指向‘6’
           *cp2=s;            // 串中的‘6’改成了‘1’
          // printf("%c,%c\n",*cp1,*cp2);   //后面的循环可以类似分析
       }
     printf("%s" ,a);
     system("PAUSE");
}
2014-04-12 21:44
lgxfxh
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-12-9
收藏
得分:0 
回复 2 楼 ying8501
多谢多谢!
2014-04-16 09:57
快速回复:求助,一个貌似简单的程序难住我了
数据加载中...
 
   



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

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