字典翻译 问答 其它 对于下列程序,正确的是voidf(int*p){*p=5;}intmain(void){inta,*p;a=10;p=&a;f(p);printf(“%d”,(*p)++);return0;}A.5x05x05B.6x05x05C.10x05x05D.11
问题标题:
对于下列程序,正确的是voidf(int*p){*p=5;}intmain(void){inta,*p;a=10;p=&a;f(p);printf(“%d”,(*p)++);return0;}A.5x05x05B.6x05x05C.10x05x05D.11
问题描述:

对于下列程序,正确的是

voidf(int*p)

{

*p=5;

}

intmain(void)

{

inta,*p;

a=10;

p=&a;

f(p);

printf(“%d”,(*p)++);

return0;

}

A.5x05x05B.6x05x05C.10x05x05D.11

李利回答:
  voidf(int*p)   {   *p=5;   }   intmain(void)   {   inta,*p;   a=10;   p=&a;   f(p);   printf("%d",(*p)++);   return0;   }   A.5B.6C.10D.11   答案是A   因为这个是按地址调用,所以在子函数f()中已经改变了a的值,而打印时是先输出a的值,之后再对a进行增1操作   你可以在return0;前加上一句printf("%d",*p);就会发现在5的基础上新输出了一个数字6.
点击显示
其它推荐
热门其它推荐
  • 其它