| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 656 人关注过本帖
标题:关于while()的问题,赏分啊嘿嘿麻烦大家帮我解说一下
只看楼主 加入收藏
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:6 
关于while()的问题,赏分啊嘿嘿麻烦大家帮我解说一下
#include<stdio.h>
void main()
{ char str[81],*sptr;
int i;
for (i=0;i<80;i++)
 {str[i]=getchar();if (str[i]=='\n') break;}
str[i]='\0';
sptr=str;
while(*sptr) putchar(*sptr++);
getch();
}
这个程序的作用是输入一个字符串然后输出,程序里面的while循环的循环条件不是错了吗为什么调试的结果也是对的。比如输入的是0,那sptr所指向的字符就是0,那while(0)就是假的了不就不执行后面的putchar(*sptr++)了吗
搜索更多相关主题的帖子: 麻烦 解说 
2009-11-30 00:26
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:4 
没看出来哪错,如果是如你所说,那么是你理解错误,你输入的字符型的 0 ,其实是 '0',不是整数的 0 。
2009-11-30 02:02
陈大师
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:231
专家分:1038
注 册:2009-11-4
收藏
得分:2 
版主对···你输入的字符型的0 是字符的‘0’,并不是数字的0.
2009-11-30 12:37
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
收藏
得分:0 
以下是引用广陵绝唱在2009-11-30 02:02:17的发言:

没看出来哪错,如果是如你所说,那么是你理解错误,你输入的字符型的 0 ,其实是 '0',不是整数的 0 。
要怎么理解呢,是不是while(*sptr)里的sptr所指向的字符的ASCII的值是0循环条件才是假的啊?比如'\0'

qq7434391
2009-11-30 12:59
hoho568
Rank: 5Rank: 5
等 级:职业侠客
帖 子:101
专家分:378
注 册:2009-7-14
收藏
得分:3 
以下是引用liangwenbc在2009-11-30 12:59:37的发言:

要怎么理解呢,是不是while(*sptr)里的sptr所指向的字符的ASCII的值是0循环条件才是假的啊?比如'\0'
刚才实验了一下,的确是*sptr所指的内容是“数字0”的时候,循环条件是假。。
2009-11-30 13:39
Happy_ZhangX
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2009-11-30
收藏
得分:1 
二楼正解,0!='0'
2009-11-30 13:40
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
收藏
得分:0 
问题基本解决了,谢谢大家

qq7434391
2009-11-30 14:15
快速回复:关于while()的问题,赏分啊嘿嘿麻烦大家帮我解说一下
数据加载中...
 
   



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

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