21xrx.com
2024-11-05 17:23:37 Tuesday
登录
文章检索 我的文章 写文章
C++ 中的形式参数详解
2023-07-02 21:34:10 深夜i     --     --
C++ 形式参数 详解

C++中的形式参数(formal parameter)是指函数定义时在括号内声明的参数。在函数被调用时,这些参数会被赋值为实际参数(actual parameter)的值或引用。本文将详细介绍C++中的形式参数。

1. 形式参数的类型

形式参数的类型可以是基本类型(如int、float等)、结构体、类、指针或引用。在函数定义中,形式参数的类型必须和函数声明中的类型一致。例如,以下函数定义中,形式参数a的类型为整数类型int:


void func(int a)

 // ...

2. 形式参数的传递方式

在函数调用中,有两种传递方式:值传递(pass by value)和引用传递(pass by reference)。

值传递方式会将实际参数的值复制给形式参数,函数运行过程中对形式参数的修改对实际参数不会产生影响。以下是一个值传递的例子:


void func(int a) {

 a = a + 1; // 对形式参数a进行修改

}

int main() {

 int val = 5;

 func(val); // 函数调用

 cout << val << endl; // 输出5(没变化)

 return 0;

}

引用传递方式会将实际参数的地址传给形式参数,函数运行过程中对形式参数的修改会直接影响实际参数。以下是一个引用传递的例子:


void func(int &a) {

 a = a + 1; // 对形式参数a进行修改,会直接修改实际参数val的值

}

int main() {

 int val = 5;

 func(val); // 函数调用

 cout << val << endl; // 输出6(变化了)

 return 0;

}

3. 形式参数的默认值

在函数定义时,可以给形式参数指定默认值。这样,调用函数时,如果实际参数没有传递值,就会使用默认值。以下是一个带有默认值的形式参数的例子:


void func(int a, int b = 0) {

 cout << a + b << endl;

}

int main() {

 func(5, 3); // 输出8

 func(5);   // 输出5,使用了默认值0

 return 0;

}

需要注意的是,如果一个函数有多个形式参数,只有末尾的形式参数可以有默认值。例如,以下定义是不合法的:


void func(int a = 0, int b)

 // ...

4. const形式参数

在函数定义中,可以将形式参数声明为const类型,表示函数不会修改该形式参数的值。以下是一个带有const形式参数的例子:


void func(const int a) {

 // a = a + 1; // 错误:const形式参数不能被修改

}

int main() {

 int val = 5;

 func(val); // 函数调用

 return 0;

}

以上就是关于C++中形式参数的详细介绍,希望对大家有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复