c语言 指针作为函数参数传递时属于值传递还是地址传递#include void swap(int x,int y){\x05int z;\x05z=x;\x05x=y;\x05y=z;}void swap1(int *x,int *y){\x05int z;\x05z=*x;\x05*x=*y;\x05*y=z;}void swap2(int *x,int *y){\x05int z;\x05z=x;

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/16 04:09:24

c语言 指针作为函数参数传递时属于值传递还是地址传递#include void swap(int x,int y){\x05int z;\x05z=x;\x05x=y;\x05y=z;}void swap1(int *x,int *y){\x05int z;\x05z=*x;\x05*x=*y;\x05*y=z;}void swap2(int *x,int *y){\x05int z;\x05z=x;
c语言 指针作为函数参数传递时属于值传递还是地址传递
#include
void swap(int x,int y)
{
\x05int z;
\x05z=x;
\x05x=y;
\x05y=z;
}
void swap1(int *x,int *y)
{
\x05int z;
\x05z=*x;
\x05*x=*y;
\x05*y=z;
}
void swap2(int *x,int *y)
{
\x05int z;
\x05z=x;
\x05x=y;
\x05y=z;
}
void swap3(int *x,int *y)
{
\x05int *z;
\x05z=*x;
\x05*x=*y;
\x05*y=z;
}
main()
{
int a,b;
int *p,*q;
a=3,b=5;
p=&a,q=&b;
swap(a,b);
swap1(&a,&b);
swap2(p,q);
swap3(p,q);
printf("%d,%d",a,b);
}
swap和swap1分别是值传递和地址传递,swap2和swap3属于什么传递?
z=*x;*x=*y;*y=z;
这里不是传值了吗?
还是说,看是什么传递只看这两行:
调用:swap(&a,&b);
定义:swap(int *x,int *y)

c语言 指针作为函数参数传递时属于值传递还是地址传递#include void swap(int x,int y){\x05int z;\x05z=x;\x05x=y;\x05y=z;}void swap1(int *x,int *y){\x05int z;\x05z=*x;\x05*x=*y;\x05*y=z;}void swap2(int *x,int *y){\x05int z;\x05z=x;
传地址
看形参是不是指针