Precedente :: Successivo |
Autore |
Messaggio |
lakeman88 Comune mortale
Registrato: 17/06/11 10:49 Messaggi: 1
|
Inviato: 17 Giu 2011 10:53 Oggetto: programmino semplice che non riesco a capire... |
|
|
#include <stdio.h>
#include<conio.h>
#include <stdlib.h>
int A(int *y)
{
int x;
x=*y+5;
*y=x*2;
return *y;
}
int main(void)
{
int y,x;
x=4;
y=A(&x);
printf("%d", x+y);
system("pause");
}
il risultato è 36..qualcuno mi spiega un passaggio alla volta come fa a venire 36??
Grazie, |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11568 Residenza: Tokelau
|
Inviato: 20 Giu 2011 13:28 Oggetto: |
|
|
x=4
poi chiama la funzione passando x per referenza, non per valore.
quindi dentro aggiunge 5 ( =9 ) e poi moltiplica per 2 ( =18 ) ma fa questo calcolo _sovrascrivendo_ il valore passato
quindi il risultato è 18 e il valore originale (che era 4) è diventato anche 18.
Alla fine stampa x+y quindi = 36 |
|
Top |
|
|
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|