关于函数返回值的一些疑问

[复制链接]
查看11 | 回复1 | 2008-8-24 22:52:55 | 显示全部楼层 |阅读模式
有这么一个程序:
#include “stdio.h”
int get(ws,lc)
int *ws,*lc;
{int c;
*ws=*lc=0;
while((c=getchar())!=EOF)
switch(c){case ‘’:

case ‘\t’:(*ws)++;break;

case ‘\n’:return 1;

default: if(c>=‘a’&&cy?x:y)不一样。谁能给小弟一个详细的解释 3Q了

回复

使用道具 举报

千问 | 2008-8-24 22:52:55 | 显示全部楼层
要理解这个问题,你首先要明白这个函数的作用。函数查找换行符(\n),如果找到了,这个函数就不再继续执行,并返回整数1,这就是return 1的作用;而如果整个循环结束之后,函数仍然在执行(没有返回),就表明没有找到换行符,所以需要返回0,这就是return 0的作用。记住,return 0一定会在没有找到任何换行符的情况下才会执行(因为如果中间找到了换行符,那么函数就直接返回了,并不会执行到ruturn 0这一句)。其实这个函数的return和你所说的return(x>y?x:y)逻辑上是一样的,它等价于:return (最终找到换行符?1:0)只是“查找换行符”这个操作比较复杂,需要写成一个代码段,而不方便写到一个...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行