ARITMETICA DEI PTR E ARGV[] C

di il
6 risposte

ARITMETICA DEI PTR E ARGV[] C

Dopo aver indicato cosa fa il seguente programma, riscrivere il codice usando
l’aritmetica sui puntatori invece dell’indicizzazione dell’array (dovranno essere eliminate tutte
le occorrenze della variabile i e tutti gli usi dell’operatore []).


#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for (i=1; i<argc; i++)
printf("%d)%s%s", i, argv[i], (i<argc-1) ? ";\n" : ".");
printf("\n");
return 0;
}
l'OUTPUT è chiaro, il problema è che non so come sostituire con l'aritmetica dei puntatori..argv e argc mi confondono..

ps.gia chiesi tempo fa ma non ho avuto risposte.. spero che qualcuno di buon cuore mi faccia capire

6 Risposte

  • Re: ARITMETICA DEI PTR E ARGV[] C

    Meglio ... prova a studiare questi ... (li inserisco tutti e due ...)
    
    char **p;
    for (p=argv+1; *p; p++)
    	printf("%s%s", *p, (*(p+1)) ? ";\n" : ".");
    
    
    while (--argc > 0)
       printf("%s ", *++argv);
    
  • Re: ARITMETICA DEI PTR E ARGV[] C

    Grazie per la risposta e la soluzione
    ho un paio di dubi:
    il ciclo che va da p=argv+1 a *p che significa?
    perchè (i<argc-1) l'hai sostituito con *(p+1)?
  • Re: ARITMETICA DEI PTR E ARGV[] C

    Guarda ... meglio ancora, dai un'occhiata al secondo codice che è più semplice ....
  • Re: ARITMETICA DEI PTR E ARGV[] C

    Ho capito più nel codice più complicato ahahah
  • Re: ARITMETICA DEI PTR E ARGV[] C

    Parti dal concetto che

    argv[1]

    e

    argv+1

    si riferiscono allo stesso elemento.
  • Re: ARITMETICA DEI PTR E ARGV[] C

    Ok è quindi il ciclo parte da li.
    seconda condizione *p
    perchè fai un for che parte da li e arriva a *p?
Devi accedere o registrarti per scrivere nel forum
6 risposte