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/07/06 18:47:38
![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;](/uploads/image/z/3325131-27-1.jpg?t=c%E8%AF%AD%E8%A8%80+%E6%8C%87%E9%92%88%E4%BD%9C%E4%B8%BA%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92%E6%97%B6%E5%B1%9E%E4%BA%8E%E5%80%BC%E4%BC%A0%E9%80%92%E8%BF%98%E6%98%AF%E5%9C%B0%E5%9D%80%E4%BC%A0%E9%80%92%23include+void+swap%28int+x%2Cint+y%29%7B%5Cx05int+z%3B%5Cx05z%3Dx%3B%5Cx05x%3Dy%3B%5Cx05y%3Dz%3B%7Dvoid+swap1%28int+%2Ax%2Cint+%2Ay%29%7B%5Cx05int+z%3B%5Cx05z%3D%2Ax%3B%5Cx05%2Ax%3D%2Ay%3B%5Cx05%2Ay%3Dz%3B%7Dvoid+swap2%28int+%2Ax%2Cint+%2Ay%29%7B%5Cx05int+z%3B%5Cx05z%3Dx%3B)
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;
传地址
看形参是不是指针