Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] operatore sconosciuto

    Salve,
    sto studiando il linguaggio C e mi trovo di fronte ad un problema che non riesco a risolvere: un operatore del quale non trovo traccia né nei vari manuali su cui sto studiando, né su internet.

    Correggetemi se sbaglio il simbolo " * " oltre ad indicare la moltiplicazione, rappresenta l'operatore di risoluzione che mi restituisce il valore a cui punta un puntatore.
    In alcuni esercizi, però, ho trovato righe di codice del tipo

    codice:
    ** p = q + (*r);
    printf(“%d”, **p);
    Purtroppo non riesco a capire cosa indichino i due simboli "**" né sono riuscito a trovare qualche indicazione.
    Mi sapete aiutare e, se si tratta di qualche particolare operatore del C, indicare dove posso trovare informazioni al riguardo?

    Grazie!
    Nemesis

  2. #2

    Re: [C] operatore sconosciuto

    Originariamente inviato da nemesis_83
    Salve,
    sto studiando il linguaggio C e mi trovo di fronte ad un problema che non riesco a risolvere: un operatore del quale non trovo traccia né nei vari manuali su cui sto studiando, né su internet.

    Correggetemi se sbaglio il simbolo " * " oltre ad indicare la moltiplicazione, rappresenta l'operatore di risoluzione che mi restituisce il valore a cui punta un puntatore.
    In alcuni esercizi, però, ho trovato righe di codice del tipo

    codice:
    ** p = q + (*r);
    printf(“%d”, **p);
    Purtroppo non riesco a capire cosa indichino i due simboli "**" né sono riuscito a trovare qualche indicazione.
    Mi sapete aiutare e, se si tratta di qualche particolare operatore del C, indicare dove posso trovare informazioni al riguardo?

    Grazie!
    E' semplicemente lo stesso operatore usato due volte.Si usa con i doppi puntatori (ache se raramente perchè in genere se hai un doppio puntatore usi un solo asterisco per modificare il puntatore puntato dal doppio puntatore)
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Miii tutto qui?
    E io che ci ho penato una settimana sopra a cercare informazioni.
    Avevo pensato a una cosa del genere ma un puntatore di un puntatore mi sembrava un po' inutile e avevo scartato l'idea.

    Quindi ad esempio

    codice:
    int x = 5;
    int *xPtr, **yPtr;
    
    xPtr = &x;
    yPtr = &xPtr;
    printf("%d", **yPtr);
    mi restituisce 5?
    Beh domanda retorica visto che non ho resistito e l'ho provato subito

    Grazie mille davvero!

    P.S.: I libri su cui studio, di cui uno è un corso completo edito dalla Apogeo usato anche come testo universitario, non accennano minimamente ai doppi puntatori... Ora che me l'hai detto mi è bastato cercare su google "doppio puntatore" e ho trovato esempi svolti dalla A alla Z. No comment....
    Nemesis

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,303
    Se un puntatore può essere visto come un array, un doppio puntatore può essere visto come una matrice, e un triplo puntatore come una matrice di matrici, ecc...
    Questo è un modo per poter dichiarare un array di N elementi di stringhe lunghe P:
    codice:
    char **array;
    int i, n, p;
    ...
    array = (char **) malloc(n * sizeof(char *))
    for (i=0; i<n; i++) arrai[i] = (char *) malloc(p * sizeof(char));
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Originariamente inviato da nemesis_83
    P.S.: I libri su cui studio, di cui uno è un corso completo edito dalla Apogeo usato anche come testo universitario, non accennano minimamente ai doppi puntatori... Ora che me l'hai detto mi è bastato cercare su google "doppio puntatore" e ho trovato esempi svolti dalla A alla Z. No comment....
    E' classico!! Io ho avuto un buon professore e poi ho fatto un bel pò di esperienza anche perchè amo il C ed ogni volta che vedo un problema stimolante,anche quì sul forum mi cimento subito se ho tempo.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.