| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 223 人关注过本帖
标题:有点不理解这个例子中的一个部分,求解析
取消只看楼主 加入收藏
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
结帖率:97.22%
收藏
已结贴  问题点数:20 回复次数:4 
有点不理解这个例子中的一个部分,求解析

程序代码:
  do
   { /* If there is not enough memory, allocate some more */
     if(length >= max_length)
     {
       max_length += LENGTH_INCREMENT;
       pTemp = (char*)malloc(max_length);
       if(pStr)          /* If we have already read characters */
       {                 /* copy them to the new memory        */
         for(int i = 0 ; i<length ; i++)
           pTemp[i] = pStr[i];
         free(pStr);
       }
       pStr = pTemp;
       pTemp = NULL;
     }
   }while((pStr[length++] = getchar()) != '\n');

这个例子中while((pStr[length++] = getchar()) != '\n');最后是不是找到’\n',那这个循环不就不能运行了?
((pStr[length++] = getchar()) != '\n')这个式子的内部运行我有点搞不清...能不能帮忙说明一下
2012-11-08 19:17
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
就是说明从字符读入一直到结束while((pStr[length++] = getchar()) != '\n');的过程

I have not failed completely
2012-11-08 20:23
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
回复 3楼 C_戴忠意
我还有个问题
这里是用do{}while();来做的
while((pStr[length++] = getchar()) != '\n');
因为(pstr[length++] = getchar())这里打了括号
那应该先读入一个字符并储存才检查的,
这个问题应该是你粗心了...嘻嘻...恩恩,当然我主要不是讨论这个的,
while((pStr[length++] = getchar()) != '\n');
读入第一个字符之后检查不是'\n'那就应该执行while,
但是while是和do呼应的,所以执行while不是应该
又从do开始吗?
这个问题我也检验了,知道是我的逻辑错了,但是偶就是理解不了
希望解答,谢谢

I have not failed completely
2012-11-08 22:17
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
求指点啊...

I have not failed completely
2012-11-09 18:17
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
刚刚自己钻研了一下,现在想明白了,还是把分发了吧

I have not failed completely
2012-11-09 18:58
快速回复:有点不理解这个例子中的一个部分,求解析
数据加载中...
 
   



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

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