C语言中函数循环里有个返回,循环外有个返回,返回的是哪个

int testLinkRing(Link *head)
{
Link *t1=head,*t2=head;
while( t1->next && t2->next)
{
t1 = t1->next;
if (NULL == (t2 = t2->next->next))
return 0;
if (t1 == t2)
return 1;
}
return 0;
}
根据条件循环里返回一个值,循环外还有一个返回值,这个返回值是什么意思,最后返回的是哪个值?也就是这个函数最后的值是多少?不管执不执行循环都会返回0,是这样吗?

int testLinkRing(Link *head)
{
Link *t1=head,*t2=head;
while( t1->next && t2->next)
{
t1 = t1->next;
if (NULL == (t2 = t2->next->next))
return 0; //如果if判断成功,返回0,跳出函数
if (t1 == t2)
return 1; //如果if判断成功,返回1,跳出函数
//到这则两次判断都不成功,继续while循环
}
//到这说明while循环结束了,并没有任何一个if判断成功,也就是没有执行过任何return

return 0; //到这函数结束,无论如何要返回一个数
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-07
满足 if (t1 == t2) 返回 1

满足 if (NULL == (t2 = t2->next->next)) 返回0

跳出循环返回0

也就是说返回值是0或者1

if (NULL == (t2 = t2->next->next)) 这句将 t2改变了,如果 此时 t2等于 t1,就形成环了,返回1
第2个回答  2013-11-07
这里的0 1应该是布尔表达式,真与假,里面的while循环判断当外循环为真时返回的值,最后的return为返回一个表达式为假的值,即当while不成立时,表达式为假
第3个回答  2013-11-07
在程序里面只要执行到return这个语句,就是不在执行函数剩下的语句了,直接返回。本回答被提问者采纳
第4个回答  2013-11-07
return 代表结束返回,只要碰到,则这个函数就退出结束了, 不分循环里外
相似回答