我对C很新,所以我需要一些功能方面的帮助。 我的问题是我如何使变量插入函数中保留它在通过函数后得到的值? 更具体地说,我有一个名为var(a)的函数,带有as参数,当函数完成时,a的值为15。 所以我调用这个函数,var(b),但我先用0初始化b。 并且在执行函数之后我希望b具有值15。 如果有人能帮助我做到这一点,我会非常高兴。 提前谢谢!
答案 0 :(得分:2)
在C中,所有函数都按值传递。这意味着当函数返回时,不能更改用作函数参数的变量。
您可以通过将变量的地址传递给函数并声明函数获取指向特定类型的指针来解决这个问题。然后在函数内部,您可以取消引用指针并更改指针指向的内容,即调用函数中的变量。
#include <stdio.h>
void func1(int *a)
{
*a = 15;
}
int main()
{
int x = 0;
func1(&x);
printf("x=%d\n",x);
}
输出:
x=15
答案 1 :(得分:0)
有两种方法可以做到这一点
将返回值保存回传递的变量(由Weather Vane建议)
a = var(a);
传递变量的地址,而不是变量(使用指针)
// calling function
var(&a);
// function definition
void var(int* a) {
*a = 15;
}