21xrx.com
2025-07-05 23:00:22 Saturday
登录
文章检索 我的文章 写文章
C++实验报告:函数
2023-07-03 05:15:44 深夜i     10     0
C++ 实验 函数 编程 调试

本篇文章主要介绍C++中的函数,包括函数的定义、调用、传参机制以及函数的重载和递归。

一、函数的定义

函数是C++程序中的基本模块,其可以将一段代码块封装起来,使得程序具有可维护性、可拓展性和可读性。

函数的定义格式如下:

返回类型 函数名(参数列表)
  函数体
  return 返回值;

其中,返回类型指定了函数返回值的数据类型,函数名的命名规则与变量名相同,参数列表中包含了传递给函数的变量名和数据类型。

二、函数的调用

通过函数名和参数列表的方式来调用函数,例如:

int sum(int a, int b) {
  return a+b;
}
int main() {
  int x = 3, y = 4;
  int result = sum(x, y);
  return 0;
}

该程序定义了一个名为sum的函数,在主函数中调用sum函数,并将返回值赋值给result变量。

三、函数的传参机制

C++中的函数传参机制有两种,分别为值传递和地址传递。

值传递是指将参数的值复制一份,传递给函数,在函数内部操作该值不会对原来的值产生影响,例如:

void swap(int a, int b)
  int temp = a;
  a = b;
  b = temp;
int main() {
  int x = 1, y = 2;
  swap(x, y);
  cout<<x<<" "<<y<<endl; //输出1 2
  return 0;
}

地址传递是指将参数的内存地址传递给函数,在函数内部操作该地址对应的值会改变原来的值,例如:

void swap(int *a, int *b) {
  int temp = *a;
  *a = *b;
  *b = temp;
}
int main() {
  int x = 1, y = 2;
  swap(&x, &y);
  cout<<x<<" "<<y<<endl; //输出2 1
  return 0;
}

四、函数的重载

函数重载是指一个函数名可以对应多个不同的函数实现,这些不同的函数实现要么参数类型不同,要么参数个数不同,例如:

int add(int a, int b) {
  return a+b;
}
double add(double a, double b) {
  return a+b;
}
int add(int a, int b, int c) {
  return a+b+c;
}

在调用add函数时,编译器将根据参数类型和个数匹配到对应的函数实现。

五、函数的递归

函数递归是指函数调用自身的情况,例如计算阶乘:

int fact(int n) {
  if(n == 1)
    return 1;
  
  else {
    return n * fact(n-1);
  }
}
int main() {
  int x = 5;
  int result = fact(x); //result = 120
  return 0;
}

递归需要注意的是,必须有一个终止条件,否则会出现无限调用,导致程序崩溃。

综上所述,函数是C++程序设计的基本单元,掌握函数的使用方法对于编写复杂程序至关重要。

  
  

评论区