作业帮 > 综合 > 作业

C语言 答案为什么是8 4

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/18 14:09:41
C语言 答案为什么是8 4
#include
void f(int y,int *x)
{y=y+*x;
*x=*x+y;
}
main()
{int x=2,y=4;
f(y,&x);
printf("%d %d\n",x,y);
}
f(y,&x); => function f
因为y没有修改原内存内容,所以没有修改,而x因为用指针修改了原内容,所以等同于在原函数x+=y.
再问: 为什么用了指针就会修改原内容呢?
再答: 指针指向原内存地址,*x求得原内存内容,用=就能修改原来的内容了。 ANSI C规定C函数只能用形参,所以只能用指针修改原内容。