对于下列程序,正确的是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](/uploads/image/z/12300233-41-3.jpg?t=%E5%AF%B9%E4%BA%8E%E4%B8%8B%E5%88%97%E7%A8%8B%E5%BA%8F%2C%E6%AD%A3%E7%A1%AE%E7%9A%84%E6%98%AFvoid+f%28int+%2Ap%29%7B%2Ap+%3D+5%3B%7Dint+main%28void%29%7Bint+a%2C%2Ap%3Ba+%3D+10%3Bp+%3D+%26a%3Bf%28p%29%3Bprintf%28%E2%80%9C%25d%E2%80%9D%2C%28%2Ap%29%2B%2B%29%3Breturn+0%3B%7DA%EF%BC%8E5+%5Cx05%5Cx05B%EF%BC%8E6+%5Cx05%5Cx05C%EF%BC%8E10%5Cx05%5Cx05+D%EF%BC%8E11)
对于下列程序,正确的是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.