gpt4 book ai didi

c - C 中的指针问题

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

我有以下问题和答案:

int m = 5;

int n = m;

int *p1 = &m;

int *p2 = &n;

m = 10;

p2 = p1;

*p2 = 7;

问题问的是以下所有的值是什么,答案是:

m=7, n=5, *p1=7, *p2=7

这是我尝试过的:

m 是一个值为 5 的 int。n 是一个 int,其值赋给了 m 的值,即 5和 p1 和 p2 并初始化为指向 m 和 n 的指针。

然后我把m的值改成10,所以m是10,n是5

然后当我设置p2 = p1时,两个指针都指向m

当我将 p2 指向的变量更改为 7 时,n 变为 7,因此 m = 10,n = 7 并且 p1 和 p2 指向值为 7 的 n。

因此:

m=10, n=5, *p1=7, *p2=7

我做错了什么?

编辑:已解决

最佳答案

您的错误在您回答的最后一行。p2指向的是m的内存地址,不是n。

p2 = p1 就是p2上存储的内存地址就是p1上存储的地址,也就是m的内存地址。

n 永远不会改变。 *p2 = 7;发生在 p2 = p1 之后,此时 p2 是 m 的内存地址。

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

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