【发布时间】:2024-01-10 20:19:01
【问题描述】:
#include <stdio.h>
int a;
int main ()
{
int a, b;
int *p;
b = 8;
p = &b;
a = 32 + b;
p = &a;
*p = 32 - b;
funct (a, &p);
*p = 2;
printf ("a=%d b=%d", a, b);
}
funct (int x, int **y)
{
a = 15;
**y = x - a;
*y = &a;
}
谁能告诉我为什么 a 等于 9?我试图解决它,但我不能很好地理解它
我尝试了code::blocks 中的代码,显然a 在之后从 40 变为 24
`*p=32-b`
另外,p=&b表示指针指向b的地址,然后在a=32+8之后
p=&a 和双指针 *p= 32-b 所以 *p=24 。 24 是存储指针p 的地址吗?因为现在a的值根据练习应该是24,我不明白为什么。
有人可以一步一步告诉我如何处理这些运动吗?
【问题讨论】:
标签: c pointers double-pointer