gpt4 book ai didi

c - 通过引用将变量传递给另一个函数时变量的值发生变化

转载 作者:太空宇宙 更新时间:2023-11-04 05:35:40 25 4
gpt4 key购买 nike

我有一个项目,我必须在其中用 C 语言创建一个基本数据库。我的问题在于不断将变量 n 从一个函数传递到另一个函数,并且在某一时刻值发生变化。

我做了一个测试程序来说明我遇到的同样问题:

#include <stdio.h>
#include <stdlib.h>

void functionTWO(int *n)
{
printf("\n%d",*n);
}

functionONE(int *n)
{
int i=0;
i++;
i++;

*n = i;
printf("\n%d", *n);

functionTWO(&n);
}

int main()
{
int n=0;


printf("%d",n);

functionONE(&n);

return 0;
}

第二个函数中的n显示为一个非常非常高的数字,例如:

0
2
2752268

现在,我知道这可能是故意的,但是你们能解释一下为什么会这样吗?

最佳答案

在您的functionONE() 中,n 已经是一个指针。如果您打算更改地址中的值,则无需传递指针的地址

作为建议,请始终检查数据类型并启用编译器警告以帮助您。

关于c - 通过引用将变量传递给另一个函数时变量的值发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37651689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com