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

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

作者: 哪有岁月静好 | 来源:发表于2020-07-27 21:35 被阅读0次

    当你选择了一种语言,意味着你还选择了一组技术、一个社区。——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语言知识细节:函数形参和实参的区别

          本文链接:https://www.haomeiwen.com/subject/xbbtrktx.html