Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    13

    [MIni Ese C]

    double *p, *q;
    q=p+3;
    Qual è il val di q? Perchè?

  2. #2
    il valore di q dipende dalla variabile p
    perchè
    tu hai scritto

    q=p+3;

    ed hai assegnato al q un'operazione di somma tra una variabile e una costante (come ben sai le costanti nn cambiano mai ma le varibili si) perciò se io metto 3 come variabile il risultato è 6 se metto 1 il risultato è 4 e via dicendo capito???

  3. #3
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    main()
    {
      int p; /* Dichiarazione della variabile*/
      printf("Inserisci la variabile P =");/*Richiesta della variabile*/
      scanf("%d",&p);/*Assegnazione della variabile*/
      q = p + 3;/*Operazione da compiere*/
      printf("Il Risultato e' = %d",q);/*Stampare q*/
      system("PAUSE");
      return 0;
    }
    Eccoti in C il piccolo programmino che te prima ha scritto

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    117
    scusate... ma da dichiarazione:

    double *p, *q;
    p e q sono puntatori a double, quindi con
    q=p+3;
    q diventa l'indirizzo puntato da p + 3 posizioni float...

    q contiene un indirizzo!

  5. #5
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    main()
    {
      int p; /* Dichiarazione della variabile*/
      printf("Inserisci la variabile P =");/*Richiesta della variabile*/
      scanf("%d",&p);/*Assegnazione della variabile*/
      q = p + 3;/*Operazione da compiere*/
      printf("Il Risultato e' = %d",q);/*Stampare q*/
      system("PAUSE");
      return 0;
    }
    Eccoti in C il piccolo programmino che te prima ha scritto

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Guarda SuperSavio che stai facendo un po' di confusione.

    Stai utilizzando per p e q (anche se manca il tipo per q) degli interi, mentre il problema indicava due PUNTATORI A DOUBLE.

    Cosi' fai confondere POint87 ...

    Come gia' detto, q e p sono dei puntatori a double.

    q puntera' in memoria all'elemento 3 di un ipotetico vettore di double il cui elemento 0 e' puntato da p.

    E' una domanda sull'aritmetica dei puntatori ...

    Nota bene ... si deve presupporre che il puntatore p sia stato inizializzato prima di questa operazione, altrimenti il risultato non ha senso.

  7. #7
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Mmm,intervengo io qui
    Se gli insegnamenti di Oregon erano esatti, si fa cosi.

    codice:
    double *p = new double;
    double *q = new double
    prinf("Srivi il valore di P");
    scand("%d",p); //No indirizzo perchè è un puntatore
    *q=*p+3;
    printf("Il valore di q = %d",q); //Stessa cosa
    delete p;
    delete q;
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il codice di XWolverineX usa i puntatori (almeno) ma non e' corretto in piu' parti ...

    Un semplice codice per capire puo' essere il seguente ...

    codice:
    #include <stdio.h>
    
    int main()
    {
      double *p, *q;
    
      p = new double[5];
      p[0] = 50.0;
      p[1] = 60.0;
      p[2] = 70.0;
      p[3] = 80.0;
      p[4] = 90.0;
    
      printf("Il puntatore %X punta a %f\n", &p[0], p[0]);
      printf("Il puntatore %X punta a %f\n", &p[1], p[1]);
      printf("Il puntatore %X punta a %f\n", &p[2], p[2]);
      printf("Il puntatore %X punta a %f\n", &p[3], p[3]);
      printf("Il puntatore %X punta a %f\n", &p[4], p[4]);
      printf("\n");
    
      q = p+3;
      printf("Il puntatore p vale %X mentre q vale %X\n\n", p, q);
    
      printf("Il valore puntato da p e' %f\n", *p);
      printf("Il valore puntato da q e' %f\n", *q);
      printf("\n");
    
      delete [] p;
    
      return 0;
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    11

    2° esercizio (sempre aritmetica puntatori)

    ok giusto.
    E se :
    int* a =0x00110022; a++;

    Quanto vale a? Perchè?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E farne uno tu?

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.