对于下列程序,正确的是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/07/12 20:26:04
对于下列程序,正确的是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
xՒN@_er$pq*CS+|RbaBh RoyfIc-y3ZC6Sj5ef{}v:XȑT(n+5򚤕 BQXKUkTRU+0rI%gu5o$T^3M6?%jm6PSErʼ+%ո^bpyEDP@1P@ xEr9 -[ 2qVl[ɜW5

对于下列程序,正确的是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.