都是一些文绉绉的说法。我想弄不清楚之间的区别也无所谓。
形参就是一种形式。
比如我说考试要用蓝色或黑色的签字笔。我指的那种笔就是一种形式,或者说是一种范畴,用数学的话说就是一个集合。这就类似形参。
等你实际考试的时候你说你带了一根黑色签字笔,那你就可以考试了。
但你只能说,你带的这个是一根黑色的签字笔,不能说黑色签字笔就是你用的那根笔。考查后者的逻辑,那考场里除了你之外,其它人用的笔不是都不能考试了?
你用的那根笔,用数学的话说就是集合的一个元素。类似实参。
c 语言的形式逻辑就是这意思。具体到实际中:
当你定义一个函数,或者声明一个函数的时候。比如
void f(int a)
里面那个 int a,就是一个形参。它从形式上说明了函数 f 需要一个整形参数。这个时候就是一个范指,不是说它非要某一个具体的 int 。因此称作形参。
当你调用一个函数时,
比如
int a = 5; f(a);
这个时候,你的 f(a) 就相当于明确要求,以变量 a 这个特定的参数来调用 f。由于 a 是一个具体的 int 变量,所以不违背 f 的定义。因此它是一个合法的调用。
用来调用 f 的就个特定变量 a,就是这次调用的实参。
不知道我这么讲解,楼主听懂了没有。
如果对这个概念不是很了解,也可以含混地下出这样的结论:声明函数时使用的参数称作形参,调用函数时使用的参数称作实参。
其实这个结论,和我之前讲的结果是等价的。但这其实是个推论,不是 C 语言本身的形式逻辑。
如果还不懂就算了。这些细节说法你之后会懂,而现在它根本不影响你继续学习。