小亦003 发表于 2021-12-29 19:48:30

一个返回值问题

在下面的一段代码中,struct Event *searchEvent(struct Event *memo, struct Date date)函数中的 if 语句是怎么执行的,是当return返回0时就退出循环吗,不太理解{:10_324:}

.....
int cmpDate(struct Date d1, struct Date d2)
{
      if (d1.year == d2.year && d1.month == d2.month && d1.day == d2.day)
      {
                return 1;
      }
      else
      {
                return 0;
      }
}
   
struct Event *searchEvent(struct Event *memo, struct Date date)
{
      struct Event *event;
   
      event = memo;
      while (event != NULL)
      {
                if (cmpDate(event->date, date))
                {
                        break;
                }
                event = event->next;
      }
   
      return event;
}
......

村里小黑 发表于 2021-12-29 19:57:20

本帖最后由 村里小黑 于 2021-12-29 20:00 编辑

如果两个数值相同退出while循环,返回event

小亦003 发表于 2021-12-29 20:13:40

村里小黑 发表于 2021-12-29 19:57
如果两个数值相同退出while循环,返回event

就是说函数 cmpDate(struct Date d1, struct Date d2) 两个数值相同,返回1,在 if (cmpDate(event->date, date)) 语句中为真,执行break,退出while循环,返回event

村里小黑 发表于 2021-12-30 08:37:44

小亦003 发表于 2021-12-29 20:13
就是说函数 cmpDate(struct Date d1, struct Date d2) 两个数值相同,返回1,在 if (cmpDate(event->date ...

页: [1]
查看完整版本: 一个返回值问题