gpt4 book ai didi

c - 达到涉及指针的定义

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:03 27 4
gpt4 key购买 nike

假设我有一段代码:

int x = 100;
int* p = &x;
*p = 20;
print(x); //<= reaching defitition of x?

执行时会输出20。
问题是print(x)的到达定义是初始赋值还是指针赋值?

同样在下面的代码中:

void sub(int* p)
{
*p = 20;
}

int x = 100;
sub(&x);
print(x); //<= reaching defitition of x?

存在同样的问题。是到达定义分析的特例,还是需要特殊的算法处理?

最佳答案

你需要更多地了解指针是如何工作的假设您有 1 台电视和 2 个 Remote 在第一个示例中,变量 x( Remote )具有值 (100) 和地址 (TV)。现在有一个指针 *p 指向与 x 相同的地址(同一台电视的第二个 Remote )。当您更改 *p 的值(电视 channel )时,您希望 x 的值相应地更改。所以现在 *p 和 x 的值都为 20(相同的电视 channel )和相同的地址(相同电视的 2 个 Remote )

我希望它现在更清晰一些

关于c - 达到涉及指针的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11375539/

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