必须知道的C语言知识细节:函数形参和实参的区别

当你选择了一种语言,意味着你还选择了一组技术、一个社区。——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,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。



你可能感兴趣的:(必须知道的C语言知识细节:函数形参和实参的区别)