当你选择了一种语言,意味着你还选择了一组技术、一个社区。——Joshua Bloch
C语言中函数形参和实参是十分重要的概念,初学者很容易混淆。形参:顾名思义,形式参数,仅仅是声明了参数的类型和参数名称,未实际分配内存和赋值。
实参:实际参数,是指函数调用时,实际赋值和分配内存空间。
例如:
int sum(int a, int b) { return a+b; } int main(void) { int c=1; sum(c,2); return 0; }
很明显,函数声明和定义时,sum(int a, int b) 其中a和b是形式参数,指明sum函数需要两个参数,并且参数的类型是整型。
当实际调用sum函数时sum(c,2), 其中变量c和常量2都是实际参数,实际参数具有真正的值和内存空间。调用时会给形式参数a和b分配内存空间,并且将实际参数c和常量2的值拷贝给形参指向的内存空间。
因此,总结下区别如下:
1.实参是函数调用时的实际参数值,形参是函数声明和定义时指定的参数名称。
2.实参值的类型必须和形参的类型相同或兼容。
3.实参和形参在函数实际调用时通过值传递方式发生联系,形参未调用时并不会分配空间和赋值,当调用时会分配空间,并且实参拷贝赋值给形参变量(值传递),实参值等于形参值。
4.函数内部只能访问形参值完成计算,无法直接访问实参。
5.函数调用结束后,形参占用的内存空间被释放,函数返回,实参仍然保留原来的内存空间和值。
其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。