为什么这会产生一个整数的指针?

时间:2015-05-05 02:57:46

标签: c

 push(equation, pop(equation) + pop(equation));

这是我正在使用的流行音乐

int pop(struct stack *st)
{
   int c;
   if (st->top == -1)
   {
      printf("Stack is empty");
      return NULL;
   }
   c = st->arr[st->top];
   st->top--;
   return c;
}

这是推送

void push(struct stack *st, int * c)
{
   if (st->top == 99)
   {
      printf("Stack is full");
      return ;
   }
        printf("TOP = %d\n", st->top);
   st->top++;
        printf("TOP = %d\n", st->top);
   st->arr[st->top] = c;
}

它说推送的第二个arg是从一个没有强制转换的整数制作指针,但我不明白为什么如果有人能解释它我会很感激。

1 个答案:

答案 0 :(得分:5)

pop()会返回int

push()获取int *,指向整数的指针。

您将两个pop()的总和直接传递给push()。两个int的总和仍然是int,而不是指向整数的指针。因此,您“从没有强制转换的整数制作指针”