gpt4 book ai didi

c - 如何使用 C 中的函数和指针更改 int 值

转载 作者:行者123 更新时间:2023-11-30 19:03:35 24 4
gpt4 key购买 nike

    int boom_number;
get_boom_number(boom_number);
void get_boom_number(int *p)
{
int x;
p = &x;
if(scanf("%d",&x)== 0)
printf("Input Error!");
else
*p = x;
return;
}

我不想将 p 值更改为我扫描的值,我的代码有什么问题吗?

最佳答案

此代码演示了更改数字的正确方法和错误方法。

函数get_number_A不会对其参数进行有意义的更改,因为C对其参数使用“pass-by-copy”。

函数get_number_B将对其参数进行有意义的更改,因为传递了指向变量的指针。

void get_number_A(int x)
{
x = 5; // This change will NOT happen outside of this function.
}

void get_number_B(int* p)
{
*p = 7; // This change will happen outside of this function.
}

int main(void)
{
int number = 0;

get_number_A(number);
printf("A.) The number is: %d; it was NOT modified.\n", number);

get_number_B(&number);
printf("B.) The number is: %d; it was SUCCESSFULLY modified.\n", number);

return 0;
}

View this code on IDEOne

关于c - 如何使用 C 中的函数和指针更改 int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745707/

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