永发信息网

c语言中,a和b值交换程序,写成单独函数和写在main函数的中区别

答案:4  悬赏:80  手机版
解决时间 2021-02-24 08:48
  • 提问者网友:骨子里的高雅
  • 2021-02-23 16:59
c语言中,a和b值交换程序,写成单独函数和写在main函数的中区别
最佳答案
  • 五星知识达人网友:持酒劝斜阳
  • 2021-02-23 17:07
你子程序里面没返回函数吧。

你在主程序里面定义了ab,但是在子程序里面调用,这些都没问题,

问题在于你调用程序完毕之后,应该把ab的值返回去啊。不返回,主程序咋识别?追问void swap(int a,int b)
{
int k;
k=a;
a=b;
b=k;
}
返回a,b 值如何写了追答结尾有一个返回语句run打头的还是tun打头的,自己翻书。这种问题第一时间就应该翻书。好像程序刚新建的时候就有。追问return a;
可以返回一个值,我就不懂了怎么可以返回两个值。
return a,b;
如果写成这样的话,返回去的两个值怎么接受啊。
我晕
全部回答
  • 1楼网友:天凉才是好个秋
  • 2021-02-23 19:47
形参不能传回实参,可以改成
# include
int main()
{
void swap(int *p1,int *p2);
int *p1,*p2,a=3,b=5;
printf("交换前,a=%d,b=%d\n",a,b);
p1=&a;
p2=&b;
swap(p1,p2);
printf("交换后,a=%d b=%d\n",a,b);
return 0;
}
void swap(int *p1,int *p2)
{
int k;
k=*p1;
*p1=*p2;
*p2=k;
}
  • 2楼网友:七十二街
  • 2021-02-23 19:11
没多大区别,写成单独的程序的话下次用到可以直接调用,方便很多。
结构会更清晰。
因为你没返回a和b
  • 3楼网友:从此江山别
  • 2021-02-23 18:00
因为c语言的函数调用传入参数传入的不是变量本身,而是变量的拷贝。

你应该用传入这两个变量的指针
swap(&a,&b);
函数这样写
void swap(int *a,int *b)
{
int k;
k=*a;
*a=*b;
*b=k;
}

如果是c++的话
修改
void swap(int &a,int &b)
{
int k;
k=a;
a=b;
b=k;
}

调用swap(a,b);不需要修改,因为这样传入的是变量本身。追问如果指针做形参,实参传进去,也不是指针的拷贝吗?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯