
c语言计算问题求解
voidsp(int*a){intb=2;*a=*a*2;a=&b;*a=*a*2}main(){intk=3;sp(&k);printfk“%d\n”,k}求详细步骤...
void sp(int *a)
{ int b=2;
*a=*a*2;
a=&b;*a=*a*2
}
main()
{int k=3;
sp(&k);
printfk“%d\n”,k
}求详细步骤 展开
{ int b=2;
*a=*a*2;
a=&b;*a=*a*2
}
main()
{int k=3;
sp(&k);
printfk“%d\n”,k
}求详细步骤 展开
1个回答
展开全部
这题,结果是6,考的是函数传址。
sp函数参数int *a是一个地址。
所以sp(&k),这里把变量k的地址传递到函数sp中,保存在sp指针a中。
所以sp对k地址操作,就会改变k的值。
所以*a=*a*2;就相当于k=k*2;(因为此时a指针指向的是k的地址,*a就是k的值)。
而之后a=&b; 之后的代码都不用看了,因为这里a指针指向了b的地址,已经和k没关系了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询