1

我遇到了一个使用 C 语言与指针相关的测验,但我不知道我的答案是对还是错。给出以下代码并找出结果。顺便说一句,变量的地址a, p, q, r被视为500, 600, 700, 800

int main(void)
{
   int  a = 10, *p = &a, **q = &p, ***r = &q;
   printf("%u %u %u %u %u", &a, p, q, r, *r);
  
   return 0;
}

我认为p指向a的地址,q指向p的地址,r指向q的地址。因此, &a等于pq等于*r

因此,我假设结果是500 500 600 700 600.

这会是正确的答案吗?

4

1 回答 1

0

如果 p 持有 a 的地址,则 p=500,再次 q 持有 p 的地址,所以 q=600,r 持有 q 的地址,所以 r=700,并且 *r=600..所以最终 ans 是 500,500,600,700,600。这意味着您的假设是绝对正确的。

于 2020-09-18T15:44:39.533 回答