Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [c]struct e puntatori

  1. #1

    [c]struct e puntatori

    ho questo sorgente:
    codice:
    #include <stdio.h>
    
    struct ciao{
    	int *p;
    	int *r;
    }ptr;
    
    int x=10,c=3;
    int main()
    {
    	ptr.p=&x;
    	ptr.r=&c;
    	printf("%d %d",*ptr.p,*ptr.r);
    	return 0;
    }
    perchè per vedere il "valore" dei miei puntatori devo scrivere
    codice:
    printf("%d %d",*ptr.p,*ptr.r);
    e non:
    codice:
    printf("%d %d",ptr.*p,ptr.*r);
    cioè, il mio puntatore è *p, non la struttura a cui fa riferimento!

  2. #2
    ho capito...è una specie di dogma....

  3. #3
    Semplicemente per la precedenza degli operatori.

    RETTIFICA: credo di non aver risposto alla domanda, ma _FORSE_ qualcun altro mi dara` una mano a breve..

  4. #4
    gh.

    E' vero che l'operatore . ha precedenza rispetto * (dereferenziazione) (infatti puoi farci caso perchè per deferenziare un puntatore a struttura devi fare (*struc).meth ) però il vero motivo e' che il nome della var e' ptr.p . Tutto qua.

    bye
    There are 10 kinds of people in the world: who knows the binary numeration and who not

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.