| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 483 人关注过本帖
标题:为什么是死循环
只看楼主 加入收藏
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
收藏
 问题点数:0 回复次数:8 
为什么是死循环
为什么是死循环
求字符串的函数
#include<stdio.h>
main()
{
int p1(char *m);
char *p,a[10];
int n;
p=a;
gets(a);
n=p1(p);
printf("%d",n);
}
int p1(char *p)
{
int c,i=0;
char *a;
{
for(a=p+i;a<p+10;)
{
if(*a!='\0')
i++;
else
break;
}
}
return(i);
}
2007-06-27 23:25
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
为什么是死循环
循环没有止境(没有上下界,也可能达不到界限).

倚天照海花无数,流水高山心自知。
2007-06-27 23:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
for(a=p+i;a<p+10;)
{
if(*a!='\0')
i++;
else
break;
}
这里因为a是个常地址,a<p+10是永远成立的.所以死循环.

倚天照海花无数,流水高山心自知。
2007-06-27 23:49
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
收藏
得分:0 

怎么改呢,我用了break,所以应该不是死循环啊


2007-06-28 11:38
vbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:352
专家分:147
注 册:2006-12-30
收藏
得分:0 

for(a=p+i;a<p+10;)
这里a=p+i是赋初值,a一直都是指向你输入的字符串的首地址不会变,所以a<p+10和if(*a!='\0')不能起到结束循环的作用.
----要学好语法.


清远鹏程万里人才网:[url=http://www.]http://www.[/url]zq.,qy.
2007-06-29 10:04
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
收藏
得分:0 
#include<stdio.h>
main()
{
int p1(char *m);
char *p,a[10];
int n;
p=a;
gets(a);
n=p1(p);
printf("%d",n);
}
int p1(char *p)
{
int c,i=0;
char *a;
{
for(a=p+i;a<p+10;)
{
if(*a!='\0')
i++;
else
break;
}
}
return(i);
}

惟有学习不断的学习!
2007-06-29 10:53
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
收藏
得分:0 
OC4yjfoM.txt (273 Bytes) 为什么是死循环



惟有学习不断的学习!
2007-06-29 10:56
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
收藏
得分:0 
#include<stdio.h>
main()
{
int p1(char *p);
char a[10];
int n;
gets(a);
n=p1(a);
printf("%d\n",n);
getch();
}
int p1(char *p)
{
int i=0;
char *a;
for(a=p;a<p+10;a=p+i)
{
if(*a!='\0')
i++;
else
break;
}
return(i);
}
这样可以了吧

惟有学习不断的学习!
2007-06-29 10:59
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
收藏
得分:0 
   多谢上面的仁兄帮我回答,这使我知道了FOR的第一个要为常量,不可能通过改变I的值而发生改化

2007-07-02 20:54
快速回复:为什么是死循环
数据加载中...
 
   



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

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