gpt4 book ai didi

c - 为什么我的指针代码在 C 中给出了错误的输出?

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

为什么我的指针代码给我错误的输出?

在哪里,我的实际代码是:

 void fun1(int *x, int *y){
*x = 50;
*y = 100;
fun2(&x, &y);
printf("%d %d ", x, y);
}

void fun2(int *x, int *y){
*x = 6;
*y = 7;
}

void main()
{
int x = 5;
int y = 10;
fun1(&x, &y);
printf("%d %d",x,y);
}

我的预期输出是这样的:6 7 6 7

它给我这样的输出:6 7 50 100

谢谢。

最佳答案

fun1 中,表达式&x 是一个指向指针 的指针。它的类型是 int **

你不应该在那里使用 address-of 运算符,因为 xy 已经是指针了。

让编译器警告您的一个简单方法是在使用前声明函数 fun2:

// Declare fun2 prototype
void fun2(int *x, int *y);

void fun1(int *x, int *y)
{
...
}

// Define fun2 implementation
void fun2(int *x, int *y)
{
...
}

关于c - 为什么我的指针代码在 C 中给出了错误的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53183649/

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