我需要弄清楚如何使用 void 类型的函数来更改另一个函数中的值,所以我正在尝试编写一个练习程序,该程序使用一个过程将整数从 5 更改为 4,然后打印新的整数(应为 4)。
#include <stdio.h>
#include <stdlib.h>
void change(int x)
{
x = 4;
}
int main(int argc, char **argv)
{
int z = 5;
change(z);
printf("%d\n",z);
return 0;
}
最后打印 5。我可以看出这里的范围存在某种问题,但我不知道如何解决它。我也无法在程序中打印,因此该解决方案是不可能的。如果有任何帮助,我将不胜感激!
最佳答案
要在另一个函数中更改不在函数范围内的变量,您必须通过指针传递变量。
void change(int *x)
{
*x = 4;
}
然后使用 change(&z)
调用该函数。
如果变量不是通过指针传递的,那么只有函数范围内的变量会改变,而它的参数不会改变。
关于c - 使用 void 类型过程更改 C 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26386425/