gpt4 book ai didi

c - 指针问题和困惑

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

这可能很简单,但让我感到困惑。

int x;
int *p = NULL;
int *q = &x;

什么时候发生

 q = p;   // Address where q points to equals NULL  .
&x = q; // I don't think this is possible .
*q = 7; // Value of memory where q is pointing to is 7?
*q = &x // That's just placing the address of x into memory where q points to right?
x = NULL;

最佳答案

q = p;

是的。 q 现在指向 NULL,就像 p 一样。

&x = q;

不合法。您不能重新分配变量的地址。

*q = 7;

是的,将q指向的地址的内存设置为7。如果q指向NULL那么这将导致错误。

*q = &x;

不合法,q 指向一个整数,因此您不能为其分配地址。 这是合法的,因为 int 存在隐式转换* (&x) 到 int (*q),但不是很安全。在 C++ 中,这只是一个普通错误。你说得对,它将 x 的地址(转换为 int)放入 q 指向的内存中。

关于c - 指针问题和困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026556/

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