1、函数为什么需要传参和返回值
(1) 函数的作用就是处理数据,传入的参数就是被加工的数据,返回值就是输出的结果。
(2)函数名就是这个函数的入口,在内存中表示就是一个函数代码段的首地址,实质是一个指针常量,所以在程序中使用函数名都是当地址来用的,用来调用这个函数。再理解指针函数的实质就比较简单了。
(3) 如果一个函数没有传参和返回值,也是可以的,也可以正常运行,那么没有返回值和形参的函数怎么运行呢?为什么会有这种函数呢?其实这种类型的函数在C语言中有很多。主要有两个作用:1) 在系统初始化的时候,我们做一些系统的配置工作,这种类型的函数都是一些配置函数,不需要形参。2)我们处理一些全局变量的数据时,会用到这种类型的函数。
2、输入型参数和输出型参数
我们举个例子来说明一下什么是输入型参数,什么是输出型参数
int func(int a , int *p) { *p = a +10; return 0; } int main() { int x , y ; x = 10; func(x,&y); printf("x = %d \n", x); printf("y = %d \n", y); return 0; }
运行结果:
x = 10 y = 20
结论:
(1) func函数中a是输入型参数,p是输出型参数。
(2) 形参的传值调用是输入型参数。传址调用即有可能是输出型参数,也有可能是输入型参数。作为输入型参数使用时,一般会加入const关键字,表明是只读,不能修改。