实参是程序中已经分配了内存空间的参数,它可以被赋予一个具体的值,比如常数、数组、地址(指针),也可以是一个变量名、数组名或表达式,当然也包括指针变量。
形参则是你在写一个被调函数时,为了说明用到的自变量的类型、要进行什么操作而定义的,在调用函数前它不会被分配内存空间,更不会被赋予具体的值。
调用函数时,形参会被分配一个新的内存空间,实参的值就会被“复制”进去,让它在被调函数中参与运算。而实参本身不参与这个运算,它仅仅起到一个传递值的作用(不过在C 中可以用&改变实参的值)。如果参数的形式是指针,那么“复制”的就是地址。
举个非常简单的例子:
代码语言:javascript复制int func1(int a)
{
a ;
return a;
}
int main()
{
int b = 5;
printf("func1 = %d, ", func1(b));
printf("b = %dn", b);
return 0;
}
输出func1 = 6, b = 5,实参b的值并没有改变。
作者:「已注销」 链接:https://www.zhihu.com/question/276730270/answer/389068813 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。