实际参数,格式参数,伪参数和实际参数和形式参数之间的区别是什么?

时间:2018-04-20 03:50:12

标签: c

我认为上面提到的一些只是同义词,但是哪些?如果我错了,还要纠正我:在一个函数中可以说主函数,括号之间的数据是参数/参数吗?

2 个答案:

答案 0 :(得分:1)

将值传递给函数有两个观点:

函数本身在编译时有一个参数(或形式参数)。 I. e。 ...

void f( int a )
{
  …
}

...具有(正式)参数a

在运行时调用该函数时,有一个a表示的值。这是参数(实际参数):

f( 5 )

这里5是参数(实际参数)。

因此调用将参数/实际参数映射到形式参数。

在某些情况下,您可以将可变数量的参数传递给函数。这是,如果函数有一个打开的参数列表:

f( int a, ... )

在许多情况下,第一个参数是需要其他参数的格式字符串。 I. e。:

printf( "%d items", 5 );

在这种情况下,"%d items"是格式字符串(格式参数),它告诉函数在" items"之前插入第二个参数的字符串表示。

但是可变数量的参数不限制格式化字符串。 I. e。以下示例都是(正式)有效的调用:

f( int a, ... ) { … }

f( 5 );
f( 6, 2, 3 )

我认为,伪参数/参数具有不同的含义。它可以是函数内部未使用的参数(因此也是调用中的参数)。它可以是一个可选参数,如果调用中没有参数,则获取默认值。 (这个概念在C中不存在,但在其他编程语言中不存在。)

答案 1 :(得分:0)

参数在函数定义中定义。它是函数执行期间参数的占位符。

void printMessage(string message){  //message is a parameter. 

 }

参数是调用函数时传递给函数的值。

printMessage("Hello World"); //"Hello World" is an argument.

虽然有人认为参数是一个参数。