C - 使用指针查找最大值

时间:2012-10-23 01:52:01

标签: c pointers struct max

我是C的新手。如果

struct test{
   int val;
   struct test *next
};

如果使用此结构创建了一个列表,那么如何通过指针找到最大值?

假设列表中填充了上述结构的对象,我试过

struct test *t1 = malloc(sizeof (struct test));
struct test *t2 = malloc(sizeof (struct test));
While (list !=NULL){
  int max=0;
  struct test *t1, *t2;
  if(t1->val < t2->val){
     max = t2->val;             
  }
 list = list->next;
}

但我想我不理解它背后的逻辑。我只需要一个解释或一个例子来说明如何使用指针找到结构列表的最大值。我们将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这可以帮助你理解(我猜)

片段:

max = t1->val; /* take first value */
/* this is one way of traveling through the simple (?) list */
for(pointer = t1->next; pointer; pointer = pointer->next)
     max = pointer->val > max ? pointer->val : max;

printf("max: %d\n", max);

编辑:假设t1指的是填充的列表。