首页 > 试题广场 >

以下程序中: ma

[单选题]
下面的代码段
int main() {
    int a = 7, b = 8, *p, *q, *r;
    p = &a;
    q = &b;
    r = p;
    p = q;
    q = r;
    printf("%d,%d,%d,%d\n", *p, *q, a, b);
}
程序运行后的输出结果是(   )
  • 8,7,8,7
  • 7,8,7,8
  • 8,7,7,8
  • 7,8,8,7

  • int main()
    {
    int a=7,b=8,*p,*q,*r;
    p=&a;q=&b;//这时*p=7,*q=8,p指向a,q指向b
    r=p;//这时*p=7,*q=8,*r=7,r指向a
    p=q;//这时p指针被修改,指向了b,因为q是指向b的;*p=8,*q=8,*r=7
    q=r;//这时q指针被修改,指向了a,因为r是指向a的;*p=8,*q=7,*r=7
    printf("%d,%d,%d,%d\n",*p,*q,a,b);//打印8,7,7,8
    return 0;
    }
    
    

发表于 2020-08-03 10:29:52 回复(0)
以答案的理解来说,就是指针的位置变了,a,b的值都不变
发表于 2019-03-30 14:53:26 回复(0)
发表于 2022-09-22 15:13:22 回复(0)
<p>q和p所指向的地址变了,地址的值没变。</p>
发表于 2020-08-05 23:23:55 回复(0)