Dualità puntatori vettori Programmazione C lez#19

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ม.ค. 2025

ความคิดเห็น • 14

  • @rinaldoclemente95
    @rinaldoclemente95 8 ปีที่แล้ว +62

    Ottima spiegazione, solo una precisione: *(p+2) e *(vett+2) sono uguali a vett[2] non a vett[3] ;
    Probabilmente a te si trova perchè in "pallone" sia l'elemento [2] che l'elemento [3] è la "L" .

    • @tommasoarcuri3867
      @tommasoarcuri3867 6 ปีที่แล้ว

      Rinaldo Clemente è + 3 poiché il contatore dei vettori è vett[0], parte da 0 poi 1 e poi 2

    • @umbertohe5723
      @umbertohe5723 6 ปีที่แล้ว +4

      Vett[3]: quarta cella pal"l"one
      . E basta

    • @gabrielenanni9273
      @gabrielenanni9273 6 ปีที่แล้ว +2

      Esatto, perché la numerazione delle celle dei vettori parte da 0 e non da 1, sfiga ha voluto che venisse scelta una parola con la doppia proprio in 3a e 4a posizione, quindi non si è capito, ma quelle due "L" in realtà non sono propriamente la stessa lettera...

    • @samas69420
      @samas69420 3 ปีที่แล้ว

      gli errori come questi sono i peggiori, non ti vengono segnalati dal compilatore o altro e non è neanche detto che si manifestino subito (come è successo in questo caso)

  • @holyteo
    @holyteo 2 หลายเดือนก่อน

    ma se io assegnassi a p l'indirizzo di una qualsiasi variabile (non l'indirizzo di un vettore) gia inizializzata nel ciclo e facessi piu uno cosa succederebbe? esempio in cui vorrei assegnare a tale indirizzo successivo la lettera k.
    char c;
    char* p;
    p=&c;
    *(p++)='k';
    cosa succede nella memoria??

  • @ludovicagarritano6691
    @ludovicagarritano6691 6 ปีที่แล้ว +3

    Pur scrivendo il tuo stesso programma, ovvero:
    #include
    #include
    #include
    int main(int argc, char** argv){
    char vett[10+1];
    char* p;
    int i;
    unsigned long dim;
    p= &vett[0];
    scanf("%s
    ", p);
    printf("Stampo la terza cella del vettore *(p+2) : %c
    ", *(p+2));

    printf("Stampo la terza cella del vettore *(vett+2) : %c
    ", *(vett+2));
    printf("Stampo la terza cella del vettore vett[10+1] : %c


    ", vett[2]);
    dim = strlen(vett);
    for(i=0; i

    • @opproductions7353
      @opproductions7353 6 ปีที่แล้ว +5

      perchè sei stupida, ecco perchè

    • @LuigiSch
      @LuigiSch 6 ปีที่แล้ว +1

      Nell'ultima printf non è vett+1 bensì vett+i

    • @GiacTucc
      @GiacTucc 4 ปีที่แล้ว +1

      Perchè sei troppo bella e quindi il compilatore va in errore...

    • @gian9315
      @gian9315 4 ปีที่แล้ว +2

      @@GiacTucc simp

    • @xxDany999xx
      @xxDany999xx 3 ปีที่แล้ว

      Nella printf del ciclo for hai inserito vett+1, invece che vett+i quindi cicla sempre su sé stesso mentre per il problema del "doppio inserimento" è dovuto al
      scritto nella scanf, va rimosso