Menu
Coddy logo textTech

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 1

Come 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 3

n = 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 elements

Possiamo usare queste 3 tecniche per eseguire molte operazioni utili con i puntatori e risolvere problemi nelle nostre attività quotidiane

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

challenge icon

Sfida

Facile

Data la seguente matrice di interi:

int numbers[] = {10, 20, 30, 40, 50, 60, 70, 80};
  • Crea un puntatore ptr1 che punti al primo elemento della matrice.
  • Crea un puntatore ptr2 e assegnagli il valore di ptr
  • Incrementa ptr2 per spostarti al quarto elemento
  • Crea ptr3 e assegnagli il valore di ptr2 
  • Decrementa ptr3 di 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++

Esercitati da solo: Compilatore C++ online