当& variableName是函数的参数时,它会做什么?

时间:2014-06-16 16:45:30

标签: c pointers

好的,所以我给了一些调用函数的“简单”C代码,并且需要构建所谓的函数,将温度从F转换为C然后C转换为F.但是我不确定如何处理传递给函数的所有不同变量。

这是现有的代码:

int main() 
{
  int degrees1 = 50, degrees2;
  char scale1 = 'F', scale2;
  convert_weight(degrees1, scale1, &degrees2, &scale2);
  printf("%d %c = %d %c\n");
  degrees1 = 10;
  scale1 = 'C';
  convert_weight(degrees1, scale1, &degrees2, &scale2);
  printf("%d %c = %d %c\n");
  return 0;
}

我不明白函数调用中所有变量的含义。

我知道该怎么做,如果我不必将所有不同的东西传递给函数,但可能不会乱用main。

如何编写接受该表单参数的函数?

1 个答案:

答案 0 :(得分:2)

我认为你必须用这个原型编写一个函数:

void convert_weight(int degrees1, char scale1, int *degrees2, char *scale2);

然后,在函数体中,您可以使用*degrees2作为输入/输出int值,使用*scale2作为输入/输出char

在您的简单代码中,您不需要进一步搞乱指针。

PS:当你说:

printf("%d %c = %d %c\n");
你可能想要:

printf("%d %c = %d %c\n", degrees1, scale1, degrees2, scale2);

否则会呈​​现未定义的行为。