运行下列程序后,输出结果是()
int d=1:
f(int *p)
{int d=5;printf("%d,",d+=(*p)++);}
main()
{int a=3;
f(&a);
printf("%d\n",d+=a++);
}
A、
8,4
B、
8,5
C、
9,4
D、
9,6
【正确答案】:B
【题目解析】:
d是一个全局变量,但是在函数F中,重新定义,所以在F中d只能怎么为一个局部变量。所以d在函数中输出的应该是d=5+3=8;因为*p是后加加,所以在这里(*p)++的值是3,但*p的值却是4,又因为p指向的是a的地址,所以此时的a=4.则在主程序中d=1+4=5