跳至内容

Formal Parameters

正式参数

传递给函数的参数是局部变量。其作用域是函数块。正式参数的名称必须与同一函数中定义的外部变量和局部变量不同。可以在函数块中为正式参数分配某些值。如果正式参数使用const修饰符声明,则其值在函数内部不能更改。

示例:

void func(const int & x[], double y, bool z)
  {
   if(y>0.0 && !z)
      Print(x[0]);
   ...
  }

正式参数可以通过常量进行初始化。在这种情况下,初始值被视为默认值。除了已初始化的参数外,其他参数也必须进行初始化。

示例:

void func(int x, double y = 0.0, bool z = true)
  {
   ...
  }

调用此类函数时,可以省略已初始化的参数,使用默认值替代它们。

示例:

func(123, 0.5);

简单类型的参数按值传递,即调用函数内部的相应局部变量的修改不会反映到调用函数中。任何类型的数组和结构体类型的数据总是按引用传递。如果必须禁止修改数组或结构体的内容,则这些类型的参数必须用const关键字声明。

有通过引用传递简单参数的可能性。在这种情况下,调用函数内对这些参数的修改将影响通过引用传递的相应变量。为了表明参数按引用传递,在数据类型后加上&修饰符。

示例:

void func(int& x, double& y, double & z[])
  {
   double calculated_tp;
   ...
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(i==ArraySize(z))       break;
      if(OrderSelect(i)==false) break;
      z[i]=OrderOpenPrice();
     }
   x=i;
   y=calculated_tp;
  }

按引用传递的参数不能用默认值进行初始化。

函数最多可以传递64个参数。

另请参阅

输入变量数据类型类型的封装和扩展性变量的初始化变量的可见性作用域和生命周期对象的创建和删除

最后更新于