c语言 指针作为函数参数传递时属于值传递还是地址传递
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/04 17:18:02
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)
#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语言 指针作为函数参数传递时属于值传递还是地址传递
指针变量 参数函数 值传递
有关c语言指针的地址传递问题
说C语言中函数值传递与地址传递的方法
在C语言中,数组作为参数,是怎样在函数之间传递的啊?
为什么要把指向指针的指针作为函数的参数传递?
matlab 函数参数传递
c语言指针传递问题一个一维数组并初始化其元素值,根据指针传递、引用传递方式对其进行由小到大进行排序指针传递是啥意思?
matlab怎么把矩阵作为函数参数传递进去
函数参数传递什么意思
C语言中,自定义函数可以使用全局变量,为什么还要传递给函数一些参数呢?
函数的参数传递有三种方式,1)按值传递,2)以指针方式传递,3)以引用方式传递.编写一个函数交换两个变量的值为例,验证是