gpt4 book ai didi

c - 不确定如何在 C 中达到此输出

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

我明白为什么第一个 print 语句输出 -3 5 8 2。但是第二个打印输出 4 5 8 0。我知道 58 是因为它们各自的值保持不变,但我不知道 w值为 4z 的值为 0。我认为我对 C 中指针的理解可能有点模糊。

 #include <stdio.h>
void mysterious(int *a, int *b, int *c) {
*a = *c;
*b = *b + *a;
*c = *a - *b;
}

int main() {
int w = 5;
int x = 1;
int y = 3;
int z = 2;
mysterious(&x, &y, &w);
printf("%d %d %d %d\n", w, x, y, z);
mysterious(&w, &w, &z);
printf("%d %d %d %d\n", w, x, y, z);
return 0;
}

最佳答案

如果翻译mysterious里面的步骤是基于*a,*b,*cw, w, z 分别是:

w = z; 
w = w + w;
z = w - w;

单步执行:z2;所以 w 变为 2,然后是 4;最后 z 变成 4 - 40

关于c - 不确定如何在 C 中达到此输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29111021/

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