Aritmetica - Operazioni
Lezione 4 di 14 del corso Puntatori in C++ di Coddy.
++ / --
Incrementare o decrementare un puntatore lo sposta alla posizione di memoria successiva o precedente dello stesso tipo di dati. Questo è molto utile quando abbiamo un array e impostiamo il puntatore affinché punti al primo elemento: a ogni incremento ci spostiamo di un elemento verso destra
int list[] = {1, 2, 3, 4, 5};
int *ptr = &list[0];
cout << *ptr << " ";
ptr++;
cout << *ptr << " ";
ptr--;
cout << *ptr;Output:
1 2 1Come puoi vedere, quando incrementiamo o decrementiamo il puntatore ci spostiamo alla posizione di memoria successiva dello stesso tipo, in questo caso all'elemento successivo o precedente dell'array
+= / -=
Aggiungere o sottrarre un numero maggiore di 1 può aiutarci a spostarci più rapidamente e di più elementi alla volta
int list[] = {1, 2, 3, 4, 5};
int *ptr = &list[0];
cout << *ptr << " ";
ptr += 4;
cout << *ptr << " ";
ptr -= 2;
cout << *ptr;Output:
1 5 3n = p2 - p1
L'ultima operazione utile che possiamo eseguire con i puntatori è calcolare quanti elementi ci sono tra di loro. Possiamo farlo calcolandone la differenza
int list[] = {1, 2, 3, 4, 5};
int *ptr = &list[0];
int *ptr2 = &list[4];
cout << "Between " << *ptr << " and " << *ptr2
<< " there's " << ptr2-ptr << " elements";Output:
Between 1 and 5 there's 4 elementsPossiamo usare queste 3 tecniche per eseguire molte operazioni utili con i puntatori e risolvere problemi nelle nostre attività quotidiane
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
FacileData la seguente matrice di interi:
int numbers[] = {10, 20, 30, 40, 50, 60, 70, 80};- Crea un puntatore
ptr1che punti al primo elemento della matrice. - Crea un puntatore
ptr2e assegnagli il valore diptr - Incrementa
ptr2per spostarti al quarto elemento - Crea
ptr3e assegnagli il valore diptr2 - Decrementa
ptr3di 2 posizioni - Calcola e STAMPA il numero di elementi tra il primo e l'ultimo elemento della matrice usando la sottrazione tra puntatori nel seguente modo
There are {elements} elements between {first} and {last}
Provalo tu
#include <iostream>
using namespace std;
int main() {
int numbers[] = {10, 20, 30, 40, 50, 60, 70, 80};
// Inserisci il codice per ptr1
// Inserisci il codice per ptr2
// Inserisci il codice per ptr3
// Stampa il messaggio desiderato
// NON MODIFICARE NULLA SOTTO QUESTA RIGA
// ---------------------------------
cout << "*ptr1 -> " << *ptr1 << endl;
cout << "*ptr2 -> " << *ptr2 << endl;
cout << "*ptr3 -> " << *ptr3 << endl;
return 0;
}Tutte le lezioni di Puntatori in C++
1Fondamenti dei puntatori
Introduzione ai puntatoriDichiarazione e inizializzazioneAritmetica - AssegnazioneAritmetica - OperazioniPuntatori constPuntatori e array2Puntatori e riferimenti
Puntatori come parametriRiferimenti - &Riferimenti come parametriPuntatori vs riferimenti3Allocazione dinamica della memoria
Operatori new e deleteMemory leakArray dinamicoArray dinamico - inserimentoEsercitati da solo: Compilatore C++ online