作业帮 > 综合 > 作业

阅读下面程序,执行后的结果

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/16 08:12:19
阅读下面程序,执行后的结果
#include "stdio.h"
void fun(int *a,int *b)
{
int k;
k=5;
*a=k;
*b=*a+k;
}
main()
{
int *a,*b,x=10,y=15;
a=&x;
b=&y;
fun(a,b);
printf("%d,%d\n",*a,*b);
}
阅读下面程序,执行后的结果
#include "stdio.h"
void fun(int *a,int *b)
{
int k;
k=5;
*a=k;//
*b=*a+k;
}
main()
{
int *a,*b,x=10,y=15;
a=&x;//此时,*a=10
//printf("%d\n",*a);
b=&y;//此时,*b=15
//printf("%d\n",*b);
//我想,你可能会认为是上面的结果
fun(a,b);//但执行这个函数后就不一样了
//*a=5,即在函数中被赋予k的值(k=5)
//*b=*a+k 即*b=5+5
printf("%d,%d\n",*a,*b);
}
再问: 如果答案是10 15,那是不是只要把void fun改成fun?
再答: 直接把fun(a,b);删掉
再问: #include "stdio.h" fun(int x,int y,int z) { z=x*x+y*y; } main() { int a=31; fun (6,3,a); printf("%d",a); } 这个程序答案是31,也就是说上面的那段程序对他无效,能不能不删掉fun(a,b),用类似的方法?
再答: 好像通过参数传递不能改变变量的值,可以删掉