Quando usare i puntatori?

di il
1 risposte

Quando usare i puntatori?

Ragazzi ho un po' di confusione sul come e quando usare i puntatori, ad esempio ho fatto un programma di ordinamento vettoriale con il bubble sort ma perchè non ho dovuto usare i puntatori nel punto che vi ho evidenziato?
/* Bubble sort con funzioni */
#include<stdio.h>
#include<stdlib.h>
int bubblesort (int n, int array[]);
int main (){
    int n,i;
    int array[50];
    
    printf ("Inserisci la grandezza del vettore: \n");
    scanf("%d",&n);
    for (i=0;i<n;i++){
        printf("Inserisci il valore %d dell'array\n",i+1);
        scanf ("%d",&array[i]);
        }
        bubblesort(n,array);
        for(i=0;i<n;i++){
        printf("Il valore %d dell'array ordinato e' %d:\n",i+1,array[i]);
        
        }
        system ("PAUSE");
        }



int bubblesort (int n, int array[]){
    int i,j,tmp;
    for (i=0;i<n-1;i++){
        for(j=0;j<n-i-1;j++){
        if (array[j]>array[j+1]){
       tmp=array[j];
        array[j]=array[j+1];
        array[j+1]=tmp;
        }
    }
}
return (array);
}
  
Questa è la parte cui mi riferisco
tmp=array[j];
array[j]=array[j+1];
array[j+1]=tmp;


Quando bisogna usare i puntatori? E perchè? Vi ringrazio per l'aiuto

1 Risposte

  • Re: Quando usare i puntatori?

    I puntatori puoi considerarli come la chiave di accesso alle allocazioni di memoria. Vale a dire che tutte le volte che vuoi accedere ad un'area di memoria puoi farlo per tramite dei puntatori. Non esiste una regola di quando usarli e quando non usarli, li usi quando ne hai necessità.

    Nel tuo caso, devi ricopiare un dato da una cella ad un'altra, per questo non essere necessario usare i puntatori.

    Se invece avessi voluto ordinare un vettore di dati tutti puntati da puntatori, allora avresti avuto necessità di scambiare i puntatori anzichè ricopiarti i dati da una cella all'altra.

    Il discorso puntatore è abbastanza ostico, serve aver compreso a fondo a livello teorico che cos'è un puntatore e occorre molta pratica per padroneggiare.
Devi accedere o registrarti per scrivere nel forum
1 risposte