c语言中void函数的返回值,是怎么回事,例如下面这个函数

#include<stdio.h>
int main()
{
void swap(int *p,int *q);

int a,b,*m,*n;
a=2;
b=3;
m=&a;
n=&b;

swap(m,n);
printf("%d %d\n",a,b);
return 0;}

void swap(int *p,int *q)
{
int t;
t=*p;
*p=*q;
*q=t;
}

请问这个程序中的被调函数中参数的值是怎么传回主函数的。不是说void类型的函数没有返回值吗?而且值传递是单向的。。

第1个回答  2013-03-13
void 是没有返回值的 如果要有返回值 void的地方改成返回值得类型 如 string int 等 然后再程序的最后一行 增加 return 你要返回的值即可
第2个回答  2013-03-13
没有return 就没有返回值
你这个使用的是指针参数,指针被该变原来的值也被改变
相似回答