对于下列程序,正确的是void f(int *p){*p = 5;}int main(void){int a,*p;a = 10;p = &a;f(p);printf(“%d”,(*p)++);return 0;}A.5 \x05\x05B.6 \x05\x05C.10\x05\x05 D.11

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/24 22:10:22
对于下列程序,正确的是void f(int *p){*p = 5;}int main(void){int a,*p;a = 10;p = &a;f(p);printf(“%d”,(*p)++);return 0;}A.5 \x05\x05B.6 \x05\x05C.10\x05\x05 D.11

对于下列程序,正确的是void f(int *p){*p = 5;}int main(void){int a,*p;a = 10;p = &a;f(p);printf(“%d”,(*p)++);return 0;}A.5 \x05\x05B.6 \x05\x05C.10\x05\x05 D.11
对于下列程序,正确的是
void f(int *p)
{
*p = 5;
}
int main(void)
{
int a,*p;
a = 10;
p = &a;
f(p);
printf(“%d”,(*p)++);
return 0;
}
A.5 \x05\x05B.6 \x05\x05C.10\x05\x05 D.11

对于下列程序,正确的是void f(int *p){*p = 5;}int main(void){int a,*p;a = 10;p = &a;f(p);printf(“%d”,(*p)++);return 0;}A.5 \x05\x05B.6 \x05\x05C.10\x05\x05 D.11
void f(int *p)
{
*p = 5;
}
int main(void)
{
int a, *p;
a = 10;
p = &a;
f(p);
printf("%d", (*p)++);
return 0;
}
A.5 B.6 C.10 D.11
答案是A
因为这个是按地址调用,所以在子函数f()中已经改变了a的值,而打印时是先输出a的值,之后再对a进行增1操作
你可以在return 0;前加上一句 printf("%d", *p); 就会发现在5的基础上新输出了一个数字6.