问题
填空题
下述程序的输出结果是______。
main()
int a=2, b=4, c=6;
int *p1=&a, *p2=&b, *p;
*(p=&c)=*p1*(*p2);
printf("%d\n", c);
答案
参考答案:H
解析: 本程序定义了3个指针变量,并且将a、b的地址分别赋给p1、p2,则*p1=a=2,*p2=b=4,所以表达式*p1*(*p2)的值是8。在赋值语句的左边是*(p=&c),即使指针p指向了变量c,因而*(p)代表了c的存储单元,所以赋值语句“*(p=&c)=*p1*(*p2);”即把整数8赋值给了变量。