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

标签 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。

如何编写接受该形式参数的函数?

最佳答案

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

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

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

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

PS:当你说:

printf("%d %c = %d %c\n");

你可能想要:

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

否则它将呈现未定义的行为。

关于c - 当 &variableName 是函数的参数时,它会做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24248478/

相关文章:

c - C中的指针深拷贝

go - 如何在 Go 1.18 中对 nil 值进行模糊测试?

c - p2==NULL 和 !*p2 一样吗?

c - 使用平方奇数窗口大小的均匀平滑滤波器操作(数字图像处理)

c - 当您尝试在 c 中释放()已经释放的内存时会发生什么?

C++大字符串初始化及使用

c++ - 指向Linkedlist开头的指针正在更改,同时在末尾添加了新节点

计算空气中声速的 C 程序未给出正确结果

c - 多个 C 指针

c - 使用 'for' 并将指针作为循环变量时的无限循环