English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Corso di base C++

Controllo di flusso C++

Funzione in C++

Array e stringhe C++

Strutture dati C++

Classi e oggetti C++

Puntatore in C++

Ereditarietà in C++

Corso di base STL C++

Manuale di riferimento C++

Funzione in C++

In questo articolo, imparerai tutto ciò che c'è da sapere sulle funzioni in C++. Quali tipi ci sono, come usarle negli esempi.

Nel programming, una funzione è un blocco di codice che raggruppa il codice per eseguire un compito specifico.

Dipende se la funzione è predefinita o creata dal programmatore; ci sono due tipi di funzioni:

  1. Funzioni di libreria standard

  2. 用户定义函数

Funzioni di libreria standard

Le funzioni di libreria sono funzioni integrate nel linguaggio C++.

I programmatori possono utilizzare le funzioni di libreria chiamandole direttamente; non devono scriverle loro stessi.

Esempio 1: Funzioni di libreria

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double number, squareRoot;
    cout << "Inserisci un numero: ";
    cin >> number;
    // sqrt()是一个用于计算平方根的库函数
    squareRoot = sqrt(number);
    cout << "数字 " << number << " 的平方根= " << squareRoot;
    return 0;
}

输出结果

输入一个数字: 26
数字 26 的平方根 = 5.09902

在上面的示例中,调用sqrt()库函数来计算数字26的平方根。

上述程序中的注意代码#include <cmath>。在这里cmath是头文件。sqrt()函数定义在cmath头文件中。

当您使用#include <cmath>将cmath文件的内容包含到这个程序中时,您可以使用cmath中定义的所有函数。

每个有效的C ++程序至少包含一个函数,即main()函数。

用户定义函数

C ++允许程序员定义自己的函数。

用户定义的函数将执行特定任务的代码分组,并为该组代码指定名称(标识符)。

从程序的任何部分调用该函数时,它们都将执行函数主体中定义的代码。

用户定义函数在C编程中如何工作?

根据上图。

当程序开始运行时,系统将调用main()函数,即程序开始运行时从main()函数执行代码。

当程序的控制权到达main()内部的function_name()时,它将移动到void function_name()并执行void function_name()内部的所有代码。

然后,程序的控制权返回到主函数,在该函数中,如上图所示,执行了function_name()调用之后的代码。

示例2:用户定义的函数

C ++程序将两个整数相加。创建一个名为add()的函数以添加整数并在main()函数中显示总和。

#include <iostream>
using namespace std;
// 函数原型(声明)
int add(int, int);
int main()
{
    int num1, num2, sum;
    cout << "输入两个要相加的数字: ";
    cin >> num1 >> num2;
    // 调用函数
    sum = add(num1, num2);
    cout << "总和 = " << sum;
    return 0;
}
// Definizione della funzione
int add(int a, int b)
{
    int add;
    add = a + b;
    // 返回语句
    return add;
}

输出结果

输入两个要相加的数字: 8
-4
总和 = 4

原型函数(声明)

Se la funzione definita dall'utente viene definita dopo il funzionamento principale, il compilatore mostrerà un errore. Questo è perché il compilatore non conosce la funzione definita dall'utente, il tipo dei parametri passati alla funzione e il tipo di ritorno.

In C++, il prototipo della funzione è la dichiarazione della funzione senza il corpo per fornire informazioni al compilatore riguardo alla funzione definita dall'utente. Il prototipo della funzione nell'esempio sopra è:

int add(int, int);

Puoi vedere che nel prototipo non c'è corpo della funzione. E ci sono solo il tipo di ritorno e i parametri, senza parametri. Puoi anche dichiarare il prototipo della funzione come segue, ma non è necessario scrivere i parametri.

int add(int a, int b);

Attenzione:Se la funzione definita dall'utente esiste prima del funzionamento principale, non è necessario definire il prototipo.

Chiamata della funzione

Per eseguire il codice del corpo della funzione, è necessario chiamare (chiamare) la funzione definita dall'utente.

Nel programma sopra, add(num1, num2); chiama la funzione definita dall'utente dal funzionamento principale.

La funzione restituisce un intero, che viene memorizzato nella variabile add.

Definizione della funzione

La funzione stessa si chiama definizione della funzione. La definizione della funzione nel programma sopra è:

// Definizione della funzione
int add(int a, int b)
{
    int add;
    add = a + b;
    return add;
}

Quando viene chiamata la funzione, il controllo viene trasferito alla prima istruzione del corpo della funzione.

Poi, vengono eseguite le altre istruzioni nel corpo della funzione in successione.

Quando viene eseguito tutto il codice nella definizione della funzione, il controllo del programma si sposta al programma chiamante.

Passaggio dei parametri alla funzione

Nel programming, il parametro (parameter) si riferisce ai dati passati alla funzione (definizione della funzione) durante la chiamata.

Nel esempio sopra, le due variabili num1 e num2 vengono passate alla funzione durante la chiamata del funzionamento. Questi parametri sono detti parametri reali.

I valori di num1 e num2 vengono inizializzati con le variabili a e b rispettivamente. Questi parametri a e b sono detti parametri formali.

Come mostrato nell'immagine seguente:

Considerazioni sull'invio dei parametri

  • Il numero dei parametri reali e dei parametri formali dovrebbe essere lo stesso. (Eccezione:)Sovraccarico delle funzioni)

  • Il tipo del primo parametro reale dovrebbe corrispondere al tipo del primo parametro formale. Allo stesso modo, il tipo del secondo parametro reale dovrebbe corrispondere al tipo del secondo parametro formale, e così via.

  • Puoi chiamare la funzione a senza passare alcun parametro. Il numero di parametri passati alla funzione dipende dal modo in cui il programmatore risolve il problema.

  • Puoi assegnare un valore predefinito ai parametri. Questi parametri sono dettiParametri predefiniti.

  • Nel programma sopra, entrambi i parametri sono di tipo int. Tuttavia, non c'è bisogno di utilizzare due parametri della stessa tipologia contemporaneamente.

Istruzione return

La funzione può restituire un singolo valore al programma chiamante utilizzando l'istruzione return.

Nel programma sopra, viene utilizzata la seguente istruzione per restituire il valore di add dalla funzione definita dall'utente al programma chiamante:

return add;

La seguente figura dimostra il funzionamento dell'istruzione return.

Nel programma sopra, il valore della funzione definita dall'utente add viene restituito alla funzione chiamante. Poi questo valore viene memorizzato in una variabile sum.

Attenzione al tipo della variabile restituita, ossia add è di tipo int e sum è di tipo int.

Inoltre, si prega di notare che il tipo di ritorno della funzione è definito nel dichiaratore della funzione int add(int a, int b), il che significa che la funzione deve restituire un valore di tipo int prima di add(int a, int b).

Se non si desidera restituire un valore alla funzione chiamante, utilizzare void.