c语言 指针作为函数参数传递时属于值传递还是地址传递
#include<stdio.h>voidswap(intx,inty){intz;z=x;x=y;y=z;}voidswap1(int*x,int*y){intz;z=...
#include <stdio.h>
void swap(int x,int y)
{
int z;
z=x;
x=y;
y=z;
}
void swap1(int *x,int *y)
{
int z;
z=*x;
*x=*y;
*y=z;
}
void swap2(int *x,int *y)
{
int z;
z=x;
x=y;
y=z;
}
void swap3(int *x,int *y)
{
int *z;
z=*x;
*x=*y;
*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) 展开
void swap(int x,int y)
{
int z;
z=x;
x=y;
y=z;
}
void swap1(int *x,int *y)
{
int z;
z=*x;
*x=*y;
*y=z;
}
void swap2(int *x,int *y)
{
int z;
z=x;
x=y;
y=z;
}
void swap3(int *x,int *y)
{
int *z;
z=*x;
*x=*y;
*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) 展开
5个回答
展开全部
swap2属于地址传递,swap3属于值传递
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
地址
================================
只看参数,不看函数内。
================================
只看参数,不看函数内。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
传地址
看形参是不是指针
看形参是不是指针
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
地址啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询