下述程序的输出结果是_________。 main() { int a=2,b=4,c=6; int*p1=&a,*p2=&b,*p; *(p=&c)=*p1*(*p2); printf("%d\n",c); }

admin2012-12-03  35

问题 下述程序的输出结果是_________。
  main()
  { int a=2,b=4,c=6;
    int*p1=&a,*p2=&b,*p;
        *(p=&c)=*p1*(*p2);
    printf("%d\n",c);
  }

选项

答案8。

解析 本程序定义了3个指针变量,并且将a、b的地址分别赋给p1、p2,则*p1=a=2,*p2=b=4,所以表达式*p1*(*p2)的值是8。在赋值语句的左边是*(p=&c),即使指针p指向了变量c,因而*(p)代表了c的存储单元,所以赋值语句“*(p=&c)=*pl*(*p2);”即把整数8赋值给了变量。
转载请注明原文地址:https://kaotiyun.com/show/tuPp777K
0

最新回复(0)