"以下程序执行后a的值是 A)4 B)1 C)0 D)运行时出错,a无定值 main() { int a,k=4,m=6,*p1=&k,*p2=&m; a=p1=

请详细解释,谢谢!
main()
{ int a,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
printf(""%d\n"",a);
}

程序执行后a的值是0
因为,p1已经指向k,p1的值是k的地址;所以p1==&m为假(p1值不等于m的地址),即a的值为0。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-08
a是数值,P1是指针,不能相互赋值,程序不全,a初始时无定值。所以应该是D。
第2个回答  2011-04-09
a=p1==&m;
等效于
a= (p1==&m);
p1==&m的结果为假,即为0
故a = 0本回答被提问者和网友采纳