JAVA C import java.util.*; #include <stdio.h> public class test { private int variable; public void main (String[] args) { variable = 0; System.out.println(“Variable is: ” + variable); } C #include <stdio.h> int variable; int main (int argc, char *argv[]) { variable = 0; printf(“Variable is: %d\n”, variable); }
JAVA C import java.util.*; public class test { private int variable; public int main (String[] args) { variable = 0; System.out.println(“Variable is: ” + variable); } C #include <stdio.h> int variable; int main (int argc, char *argv[]) { variable = 0; printf(“Variable is: %d\n”, variable); }
Programma C #include <stdio.h> int global_variable = 0; int function (int temp) { int local_variable = 0; local_variable++; global_variable++; temp++; return(0); } int main () { function(global_variable); printf(“Global is: %d; Local is: %d\n”, global_variable,local_variable);
(visibili a una funzione) Struttura Programma C #include <stdio.h> int global_variable = 0; int function (int temp) { int local_variable = 0; local_variable++; global_variable++; temp++; return(0); } int main () { function(global_variable); printf(“Global is: %d; Local is: %d\n”, global_variable,local_variable); analogo a import Variabile Globale (visibile a tutti) Variabili Locali (visibili a una funzione) Stampa
Modelli di Memoria C JAVA Oggetto Indirizzi Metodi Oggetto Locazione Locazione di memoria 1 2 . Oggetto Indirizzi Metodi Oggetto . N-1
Printf printf(“Variabile1 = %d; variabile2 = %d.\n”, var1, var2) Stringa di formato printf(“Variabile1 = %d; variabile2 = %d.\n”, var1, var2) Formato %d numero decimale %f numero float %b numero binario %c carattere Carattere speciale \n a capo \t tab \\ “\” Ritorna il numero di byte stampati Risultato Stampa: Variabile1 = 5; variabile2 = 8. Ritorna: 32
Scanf scanf(“Variabile1 = %d; variabile2 = %d.\n”, &var1, &var2) Stringa di formato scanf(“Variabile1 = %d; variabile2 = %d.\n”, &var1, &var2) Formato di argomento Carattere speciale Indirizzo di var2 Ritorna il numero di argomenti memorizzati Esempio scanf(“%d %d”, &var1, &var2); Risultato Aspetta che l’utente abbia inserito due numeri (ES: “5 8”) Memorizza: “5” in var1; “8” in var2. Ritorna: 2
Array int array [42] ; Uso di un array array [0] = 5; array [41] = 5; 1 int array [42] ; 2 . Uso di un array array [0] = 5; (primo elemento) array [41] = 5; (ultimo elemento) Indirizzi 42 caselle . N-1 MAI indirizzare fuori dai limiti dell’array!!!
Uso di array #include <stdio.h> int global_variable = 0; int main () { int array[42]; int i; for (i = 0; i < 42; i++) { array[i] = i+1; } printf(“Slot: %d has value %d\n”, i, array[i]); return(0);
Puntatori int * puntatore_a_int ; Uso di un puntatore puntatore = 5; int * puntatore_a_int ; 1 2 . Uso di un puntatore puntatore = 5; (scrive nel puntatore) *puntatore = 5; (scrive nella variabile puntata) puntatore = puntatore + 1; (scrive in puntatore l’indirizzo dell’intero successivo a quello puntato) Indirizzi 1 . N-1 MAI scrivere in una locazione sconosciuta!!!
Uso di puntatori #include <stdio.h> int global_variable = 0; int function (int * temp) { int local_variable = 0; local_variable++; global_variable++; (*temp)++; return(0); } int main () { function(&global_variable); printf(“Global is: %d; Local is: %d\n”, global_variable,local_variable);
Array & Puntatori Ulteriori usi di un array puntatore = array; (puntatore e’ uguale all’indirizzo iniziale dell’array) puntatore[0] = 5; *puntatore = 5; (scrivo in array[0]) (puntatore + 1)[0] = 5; puntatore[1] = 5; *(puntatore + 1) = 5; (scrivo in array[1]) 1 2 . Indirizzi 42 caselle . N-1
Allocazione Dinamica della Memoria #include <stdlib.h> void * malloc(int size); Riserva un’area di memoria di dimensione specificata (in bytes) Ritorna: Indirizzo dell’area allocata void free(void * area); Libera un’area di memoria allocata precedentemente
Esempio #include <stdio.h> #include <stdlib.h> int main () { int i, size; int * vector; puts(“Inserisci dimensione buffer:”); scanf(“%d”, &size); vector = malloc ( size * sizeof(int) ); for (i = 0; i < size; i++) { array[i] = i+1; } printf(“Slot: %d has value %d\n”, i, array[i]); printf(“God’s in his heaven, all is right with the world\n”); return(0);