C++函数

简介: C++函数

一、函数概念

一个C++程序无论大小,由一个或多个函数构成,而且其中有且仅有一个主函数main(),主函数可以调用其他函数,其他函数也可以相互调用。同一个函数可以被一个或多个函数多次调用。


在创建函数时,必须编写其定义。所有函数定义包括以下组成部分:

  • 名称:每个函数都必须有一个名称。通常,适用于变量名称的规则同样也适用于函数名称。
  • 形参列表:调用函数的程序模块可以向其发送数据。形参列表是保存传递给函数的值的变量列表。如果没有值传递给函数,则其形参列表为空。
  • 主体:函数的主体是处理函数正在执行的任务的一组语句。这些语句包含在一组大括号中。
  • 返回类型:函数可以将值发送回调用它的程序模块。返回类型是要发送回的值的数据类型。

二、函数

1、定义

#include <iostream>
 
using namespace std;
 
/**
 * 加法函数
 * @param num1 加数
 * @param num2  加数
 * @return  和
 */
int add(int num1, int num2) {
    return num1 + num2;
}
 
int main() {
    //调用函数
    cout << add(2, 3) << endl;
    return 0;
}
 
 
5
#include <iostream>
 
using namespace std;
 
//1、无参无返
void fun1() {
    cout << "hi" << endl;
}
 
//2、有参无返
void fun2(int num) {
    cout << num << endl;
}
 
//3、无参有返
int fun3() {
    return 10;
}
 
//4、有参有返
int fun4(int num) {
    return num;
}
 
int main() {
 
    return 0;
}
 
 

2、值传递

#include <iostream>
 
using namespace std;
 
 
void swap(int num1, int num2) {
    cout<<"swap交换前"<<endl;
    cout<<"num1="<<num1<<endl;
    cout<<"num2="<<num2<<endl;
    int tem=num1;
    num1=num2;
    num2=tem;
    cout<<"swap交换后"<<endl;
    cout<<"num1="<<num1<<endl;
    cout<<"num2="<<num2<<endl;
}
 
int main() {
    //调用函数
    int num1 = 10;
    int num2 = 20;
    cout<<"main调用前"<<endl;
    cout<<"num1="<<num1<<endl;
    cout<<"num2="<<num2<<endl;
    swap(num1,num2);
    cout<<"main调用后"<<endl;
    cout<<"num1="<<num1<<endl;
    cout<<"num2="<<num2<<endl;
    return 0;
}
main调用前
num1=10
num2=20
swap交换前
num1=10
num2=20
swap交换后
num1=20
num2=10
main调用后
num1=10
num2=20

3、函数的申明

#include <iostream>
 
using namespace std;
 
//函数的申明,申明可以有多次
int max(int num1, int num2);
 
int main() {
    cout << max(10, 29) << endl;
    return 0;
}
 
//函数的定义
int max(int num1, int num2) {
    return num1 > num2 ? num1 : num2;
}
29

4、分文件编写函数

swap.h

#include <iostream>
using namespace std;
//函数的申明
void swap(int num1, int num2);

swap.cpp

#include "swap.h"
//函数的定义
void swap(int num1, int num2) {
    cout << "swap交换前" << endl;
    cout << "num1=" << num1 << endl;
    cout << "num2=" << num2 << endl;
    int tem = num1;
    num1 = num2;
    num2 = tem;
    cout << "swap交换后" << endl;
    cout << "num1=" << num1 << endl;
    cout << "num2=" << num2 << endl;
}

main.cpp

#include <iostream>
#include "swap.h"
using namespace std;
 
 
 
int main() {
    int num1 = 10;
    int num2 = 20;
    swap(num1, num2);
    return 0;
}

相关文章
|
1月前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
1月前
|
存储 前端开发 C++
C++ 多线程之带返回值的线程处理函数
这篇文章介绍了在C++中使用`async`函数、`packaged_task`和`promise`三种方法来创建带返回值的线程处理函数。
46 6
|
1月前
|
C++
C++ 多线程之线程管理函数
这篇文章介绍了C++中多线程编程的几个关键函数,包括获取线程ID的`get_id()`,延时函数`sleep_for()`,线程让步函数`yield()`,以及阻塞线程直到指定时间的`sleep_until()`。
25 0
C++ 多线程之线程管理函数
|
1月前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
24 3
|
1月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
174 1
|
1月前
|
存储 编译器 C++
C++入门3——类与对象2-1(类的6个默认成员函数)
C++入门3——类与对象2-1(类的6个默认成员函数)
33 1
|
1月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
42 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
2月前
|
编译器 C++
【C++核心】函数的应用和提高详解
这篇文章详细讲解了C++函数的定义、调用、值传递、常见样式、声明、分文件编写以及函数提高的内容,包括函数默认参数、占位参数、重载等高级用法。
23 3
|
3月前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
|
3月前
|
C++
c++常见函数及技巧
C++编程中的一些常见函数和技巧,包括生成随机数的方法、制表技巧、获取数字的个位、十位、百位数的方法、字符串命名技巧、避免代码修改错误的技巧、暂停和等待用户信号的技巧、清屏命令、以及避免编译错误和逻辑错误的建议。
35 6