C语言程序中,没有返回值的函数如何把运算结果返回给主函数的?如下面程序:
voidswap(int*a,int*b){intt;t=*a;*a=*b;*b=t;}main(){intx=10,y=20;printf("(1)x=%dy=%d\n...
void swap(int*a,int*b)
{
int t;
t=*a; *a=*b; *b=t;
}
main()
{
int x=10,y=20;
printf("(1)x=%d y=%d\n",x,y);
swap(&x,&y);
printf("(2)x=%d y=%d\n",x,y);
}
结果是 展开
{
int t;
t=*a; *a=*b; *b=t;
}
main()
{
int x=10,y=20;
printf("(1)x=%d y=%d\n",x,y);
swap(&x,&y);
printf("(2)x=%d y=%d\n",x,y);
}
结果是 展开
5个回答
展开全部
void swap(int*a,int*b)
{
int t;
t=*a; *a=*b; *b=t;
}
main()
{
int x=10,y=20;
printf("(1)x=%d y=%d\n",x,y);
swap(&x,&y);
printf("(2)x=%d y=%d\n",x,y);
}
这个输出结果是:(1)x=10 y=20
(2)x=20 y=10
这个是址传递,如果是值传递值肯定不会传回给主函数,而地址传递要看交换的是谁,可能会传回也可能不回。
这个题:把x的地址和y的地址给指针变量a,b,就说明a 指向了x,b指向了y,在swap函数里是把数据进行交换了也就是说把x\y交换了(*a表示取a所指变量的内容,*b同理!)执行完之后输出x,y就是交换后的
{
int t;
t=*a; *a=*b; *b=t;
}
main()
{
int x=10,y=20;
printf("(1)x=%d y=%d\n",x,y);
swap(&x,&y);
printf("(2)x=%d y=%d\n",x,y);
}
这个输出结果是:(1)x=10 y=20
(2)x=20 y=10
这个是址传递,如果是值传递值肯定不会传回给主函数,而地址传递要看交换的是谁,可能会传回也可能不回。
这个题:把x的地址和y的地址给指针变量a,b,就说明a 指向了x,b指向了y,在swap函数里是把数据进行交换了也就是说把x\y交换了(*a表示取a所指变量的内容,*b同理!)执行完之后输出x,y就是交换后的
展开全部
#include <stdio.h>
void swap(int*a,int*b)
{
int t;
t=a; a=b; b=t;
printf("a=%d b=%d\n",*a,*b);//试试看a,b
}
main()
{
int x=10,y=20;
printf("(1)x=%d y=%d\n",x,y);
swap(&x,&y);
printf("(2)x=%d y=%d\n",x,y);
}
结果,xy仍然是10,20
原因很简单,因为swap函数里交换的只是指针ab指向的地址,a指向了y,b指向了x。
原题,是因为swap函数里交换的ab指向地址的内容,也就是将xy的值交换了!
这种题目,请多多调试理解~~
void swap(int*a,int*b)
{
int t;
t=a; a=b; b=t;
printf("a=%d b=%d\n",*a,*b);//试试看a,b
}
main()
{
int x=10,y=20;
printf("(1)x=%d y=%d\n",x,y);
swap(&x,&y);
printf("(2)x=%d y=%d\n",x,y);
}
结果,xy仍然是10,20
原因很简单,因为swap函数里交换的只是指针ab指向的地址,a指向了y,b指向了x。
原题,是因为swap函数里交换的ab指向地址的内容,也就是将xy的值交换了!
这种题目,请多多调试理解~~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过指针,参数接收一个地址过来,修改此地址的内容就可以实现结果的返回
追问
那如果
void swap(int*a,int*b)
{
int t;
t=a; a=b; b=t; (不是内容交换)
}
main()
{
int x=10,y=20;
printf("(1)x=%d y=%d\n",x,y);
swap(&x,&y);
printf("(2)x=%d y=%d\n",x,y);
}
这样结果会是什么?
追答
t=a; a=b; b=t; 这是非法的,t是整型,而 a b 是指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过指针就可以啊,你那样就可以啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |