void f( int y,int *x) {y=y+*x; *x=*x+y;} main( ) { int x=2,y
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/19 14:14:37
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); }
为什么输出结果是8,4 .即为什么x取了返回值 而y没有
为什么输出结果是8,4 .即为什么x取了返回值 而y没有
在c语言中,被调函数不能直接修改主调函数中变量的值,而要让函数可以修改主调函数的变量,则被调函数需要将参数声明为指针类型,调用者需向被调用的函数传递变量的地址,所以,f()中x是声明为指针类型,调用的时候也是给x传递地址,所x能修改主函数中的值,而y传的是值,自然不能,这就是值传递和地址传递的区别,建议你多看看指针那章,
再问: 知道了 通过传送地址值,在被调用函数中直接改变调用函数的值 吧
再答: 是啊,地址传递就是这意思
再问: 知道了 通过传送地址值,在被调用函数中直接改变调用函数的值 吧
再答: 是啊,地址传递就是这意思
void f( int y,int *x) {y=y+*x; *x=*x+y;} main( ) { int x=2,y
#includevoid f(int y,int *x){ y=y+*x; *x=*x+y;} void main(){
#include void f(int*x,int y) {*x=y+1;y=*x+2;} main() {int a=
# include void p(int *x,int y){ ++*x; y=y+2; } void main() {
#include void main() { int x=2,y; switch(x) { case 1:y=x ; b
Void main (){ int i ,x ,y ;Scamf (“%d”,&x );If ( _____) y=x+
void fun(int *x,int y)
fun(int x,int y,int z) {z=x*x+y*y;} main() {int a=31; fun(5,
#include void fun (int,int); void main (void) { int i,j,x,y,
int func(int x,int y ) { return(x+y) } main() {int a=1,b=2,c
main() { int x=10; int y=x++; printf("%d,%d\n",(x++,y),y++);
指针void f3(int *x,int *y) { int *t; t = x; x = y; y = t; 怎么理解