Code Bye

救命

#include<stdio.h>
int k=5;
void f(int *s)
{
s=&k;
*s=k;
}
main()
{
int m=3;
f(&m);
printf(“d%,d%\n”,m,k);
}
最后输出为多少,按照函数地址传递传值方式不是应该输出5,5吗为什么答案是3,5
解决方案

20

f函数里的参数是一个形参,百度一下实参和形参的区别可以解。首先s进去是一个指向参数的指针,函数里的第一步,s保存有的全局函数k的地址,下一步,把k的值赋给s指针指向的数,即k

10

你那个函数里的s=&k要去掉啊

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明救命