C语言-函数间的通信(数据传递)

函数间的通信有三种流:向下流、向上流、双向流。

向下流:主调函数->被调函数。例如将数据传递给打印函数。

向上流:被调函数->主调函数。C语言中只提供了return语句来实现向上流。若要实现其他形式的向上流(例如在被调函数里从键盘读取数据,再传递给主调函数),可以先把主调函数里的变量地址传递给被调函数,被调函数声明一个变量来存放主调函数传来的地址。然后对地址就行操作。例如:

#include <stdio.h>

void f(int* num1, int* num2);
int main()
{
	int num1 = 0;
	int num2 = 0;
	f(&num1, &num2);
	printf_s("num1 is %d, num2 is %d.", num1, num2);
	return 0;
}
void f(int* num1, int* num2)
{
	*num1 = 2;
	*num2 = 3;
}

  结果如下

num1 is 2, num2 is 3.

若要从键盘内读取数据存放,则使用scanf_s即可。因为scanf函数就是对地址进行操作的。

通过类似上文的方法,可以实现从被调函数向主调函数的数据传递。

双向流:主调函数传递数据给被调函数,同时或者在过程结束时,被调函数也将数据返还给主调函数。过程与向上流类似。

猜你喜欢

转载自www.cnblogs.com/liyifaner/p/9033698.html