Comprensione del concetto di "argomenti" e "parametri"

0

Nel terzo paragrafo alla pagina 26 del ebook " Il linguaggio di programmazione C " l'autore / i dire,

"We will generally use parameter for a variable named in the parenthesized list in a function. The terms formal argument and actual argument are sometimes used for the same distinction."

E nella copia cartacea del libro che sto ascoltando, al secondo capoverso del numero di pagina 25 l'autore / i dice,

"We will generally use parameter for a variable named in the parenthesized list in a function definition, and argument for the value used in a call of the function. The terms formal argument and actual argument are sometimes used for the same distinction."

Se ho capito bene, significa qualunque sia il valore (o variabile) usato nella chiamata di una funzione, che è chiamato argomento . E tutto ciò che è scritto nella parestesia della definizione di una funzione, è chiamato parametro . Per esempio. nel seguente codice:

#include<stdio.h>

int func(int j)
{  
    return j;  
}

main()  
{  
    int k=5;  
    printf("The argument = %d", func(k));  
}  

i parametri sono dichiarati dalla riga int func(int j) . L'argomento fornito, tramite il quale main() e func(int j) comunicano, è k .

Ora, sulla pagina numero 30 del libro (entrambi, l'ebook e la copia cartacea) lo stato dell'autore,

"main and getline communicate through a pair of arguments and a returned value. In getline, the arguments are declared by the line

int getline(char s[], int lim);"

Come ho capito, char s[] e int lim sono parametri , perché sono scritti nella definizione della funzione getline , non nella chiamata di quella funzione, quindi la mia domanda è ,

Perché gli autori hanno utilizzato l'argomento parola nel secondo paragrafo della pagina numero 30?

    
posta user106313 22.01.2015 - 13:15
fonte

3 risposte

3

L'inglese (e presumo anche altre lingue) ha un sacco di parole che possono essere usate in senso generico, ma non sono più corrette in un contesto che richiede più distinzione. Ad esempio, è possibile utilizzare la parola "goose" per riferirsi a un'oca di qualsiasi genere o età quando si parla nel senso generico più comune, ma se una distinzione deve essere fatta, un'oca maschio è propriamente chiamata un gander, e un bambino l'oca è propriamente detta una papera.

"Argomento" e "parametro" sono due di queste parole. È possibile utilizzare "argomento" in un contesto più libero per fare riferimento a un argomento oa un parametro, ma in determinate circostanze è utile essere in grado di distinguerli in modo preciso. Queste circostanze sono abbastanza rare che molti programmatori non imparano la distinzione per anni, se mai.

Non chiedermi perché l'inglese sia così. Non è stato progettato per semplificare l'analisi.

    
risposta data 22.01.2015 - 15:01
fonte
1

Il termine "argomento" è spesso usato piuttosto liberamente per riferirsi a argomenti reali o argomenti formali senza dare effettivo o formale aggettivo. Molto spesso, il contesto chiarisce se si intende argomenti reali o argomenti formali / parametri .

In questo caso, dovrebbe essere chiaro che gli autori intendevano argomenti formali o parametri . Il motivo per cui non hanno usato i parametri è pura speculazione. Può essere una semplice svista o una scelta deliberata perché ha reso il testo più scorrevole.

    
risposta data 22.01.2015 - 13:46
fonte
0

Per prima cosa, ricapitoliamo:

  • "parametro = il nome della variabile"
  • "argomento = l'espressione passiamo alla funzione"

Nota anche che "argomento" non è il nome della variabile. Pertanto, è tutto altro. In senso figurato, puoi pensare a "argomento" come un tubo / linea. Una linea che collega il testo nel codice sorgente tenendo "l'argomento effettivo" con il testo nel codice sorgente che definisce "l'argomento formale".

Questa pipe ha un tipo. Rappresenta un cast . Un cast è definito dal tipo sorgente e dal tipo destinazione .

Quando ti dicono che "gli argomenti sono dichiarati dalla riga int getline(char s[], int lim) " ti dicono che qui c'è la definizione della pipe (che è "argomento"): il suo tipo di target è "char []" (e il tipo di sorgente può essere qualsiasi cosa).

    
risposta data 22.01.2015 - 14:37
fonte

Leggi altre domande sui tag