gpt4 book ai didi

c - 为什么下面程序的输入是描述的: Pointers, extern values

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

int x=0;
int*a=&x;

void foo(int * a) {
static x=0;
x++;
printf("x's value %d ", x);
*a+=x;
a=&x;
*a=x+10;
}

int main(void) {
foo(a);
printf("a's value %d\n ", *a);
foo(a);
printf("a's value %d ", *a);

return 1;

}

我正在尝试分析以上内容。 foo 的第一次迭代,当函数到达 a=&x 时,函数停止后的 a 会受到所发生情况的影响,因为在函数结束时指针将返回到原始值他指着,现在是 1。静态 x 现在也是 1。第二次迭代:x 是如何得到值 12 的?!静态的 x 变成了 2,所以我期望 3 是 a 的值。

输出是:

 x's value 1 a's value 1
x's value 12 a's value 13

最佳答案

a=&x;
*a=x+10;

上面的代码将x加10,因为你把a设置为指向x的指针,然后设置指向的值从 ax+10

关于c - 为什么下面程序的输入是描述的: Pointers, extern values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563219/

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