CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

请教各位大侠,给分

楼主djlove(想飞)2004-11-02 21:43:19 在 C/C++ / C++ 语言 提问

请大家帮我看一下这个程序,其中的st=st-len-1我不知道什么意思,谢谢  
      #include<iostream>  
      const   char   *st="the   expense   of   spirit   \n";  
      int   main()  
      {  
        int   len=0;  
          while(*st++)    
            ++len;  
        st=st-len-1;  
        cout<<len<<":"<<st;  
        return   0;  
        } 问题点数:20、回复次数:5Top

1 楼xMars(火星虫:最简单的人工智能)回复于 2004-11-02 21:54:30 得分 0

st=st-len-1;表示把st的从某个地址开始输出Top

2 楼willko(珂http://www.willko.cn)回复于 2004-11-02 21:58:06 得分 0

这个是计算字符串长度的  
  当*st==NULL时退出循环,因为用的是后置++,所以要减1Top

3 楼liukang520236(【从不上CSDN的全自动智能灌水机】)回复于 2004-11-02 22:04:44 得分 0

to     willko(嘿嘿)   大虾  
   
   
  写成  
      #include<iostream>  
      const   char   *st="the   expense   of   spirit   \n";  
      int   main()  
      {  
        int   len=0;  
          while(*st++)    
            len++;  
        st=st-len;  
        cout<<len<<":"<<st;  
        return   0;  
        }  
   
  这样可以吗?  
  Top

4 楼lynnboy(lynnboy)回复于 2004-11-02 22:12:27 得分 20

st原来指向字符串开始,后来经过循环中的st++指向了字符串结尾的'\0'。  
  所以如果要将st重新指向字符串开始,则需要将其向前移动整个字符串加上最后一个'\0'的长度的位置,所以需要st   -   len   -   1Top

5 楼UPCC(杂食动物)回复于 2004-11-02 23:23:17 得分 0

st=st-len-1;  
  ---------------------------  
  因为指针自加了len+1次(因为到最后条件为false时还加了一次),要把指针回到以前指向的地方需要回退len+1次。  
   
  写成          
  while(*st++)    
            len++;  
  是不合题意的。  
  指针自加一样多次,len还是一样的大。(不过当然不会内存错误),这样the   的't'会没有显示Top

相关问题

  • 给各位的分!
  • 送分给各位水友!!!
  • 各位,怎么给分啊?
  • 各位高手再给分
  • 怎样给各位加分?
  • 各位,放分!!!
  • 各位,放分!!!
  • 各位高手看过来!给分!
  • 请问各位,如何给分呀?
  • 各位高手请进一定给分!!!

关键词

  • st
  • len
  • cout
  • const char
  • main
  • of spirit

得分解答快速导航

  • 帖主:djlove
  • lynnboy

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo