Created
November 30, 2017 18:38
-
-
Save MarcoBuster/66154c6ee0dd530142e0a325eed06d7f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
// Piccolo tutorial sui puntatori in C / C++ | |
// Relased under Creative Commons CC0 1.0 Universal License (public domain) | |
int main() | |
{ | |
int var = 45; | |
int *pointer; // inizializza puntatore di tipo int | |
int array[] = {0, 1, 2, 3, 4, 5}; // inizializza array a caso | |
int *array_pointer; // inizializza puntatore di tipo int | |
pointer = &var; // copia l'indirizzo della cella dove è contenuta la variabile var in pointer | |
printf("Indirizzo cella di var: %d", (int) pointer); // stampa l'indirizzo della cella | |
// P.S.: (int) variabile serve per convertirla in int (casting) | |
array_pointer = &array[0]; // copia l'indirizzo della cella dove è contenuto il primo elemento dell'array | |
printf("\nIndirizzo cella array[0]: %d", (int) array_pointer); // come sopra | |
printf("\nValore cella array[0]: %d", *array_pointer); // stampa il valore della cella con l'indirizzo contenuto in array_pointer | |
array_pointer++; // incrementa di 1 il valore di array_pointer | |
// (negli array di int, tutti gli elementi sono uno dopo l'altro. Non sono sicuro che valga per sempre) | |
printf("\nIndirizzo cella array[1]: %d", (int) array_pointer); // come sopra | |
printf("\nValore cella array[1]: %d", *array_pointer); // come sopra | |
/* | |
* OUTPUT: | |
* Indirizzo cella di var: 1370159224 | |
* Indirizzo cella array[0]: 1370159232 | |
* Valore cella array[0]: 0 | |
* Indirizzo cella array[1]: 1370159236 | |
* Valore cella array[1]: 1 | |
* | |
* Ovviamente gli indirizzi della memoria cambiano a ogni avvio e sono abbastanza casuali | |
* (ogni programma ha il proprio range di memoria che può usare, stabilito dal'OS) | |
*/ | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment