PDA

View Full Version : [C] codice coi puntatori difficile da capire


mdr268
28-10-2013, 15:17
Ciao a tutti, mi sto imbattendo in una riga di codice che non riesco a capire cosa fa:

unsigned char *byte=(unsigned char*) & info;

in particolare non capisco l'asterisco dopo il secondo char...

Qualcuno potrebbe darmi un aiuto? :muro: :D

GByTe87
28-10-2013, 16:55
Stai assegnando alla variabile byte (di tipo puntatore ad unsigned char) l'indirizzo di info, eseguendone prima un cast a puntatore ad unsigned char.

Quello nella parentesi è, per l'appunto, il cast

mdr268
28-10-2013, 19:21
Grazie mille, mi mancava il cast (l'avevo visto in Java molti anni fa e non ci sarei mai arrivato da solo).



Già che ci sono ti/vi chiedo anche il significato di questa riga:


unsigned char c;
c = c ^ 0x20;


So che ciò che inizia per 0x è un numero esadecimale, ma non capisco l'accento circonflesso (^).

Grazie ancora! :) :ave:

-Ivan-
28-10-2013, 19:32
^ è l'operatore xor in C.
Puoi trovare la lista degli operatori qui:
http://en.wikipedia.org/wiki/Operators_in_C_and_C++.

lorenzo001
28-10-2013, 19:47
Puoi trovare la lista degli operatori ...

... e tutto il resto in un libro di base ...

mdr268
28-10-2013, 20:03
... e tutto il resto in un libro di base ...

Sto leggendo un libro su C della Pearson ma devo ancora imbattermi negli argomenti che ho chiesto; prima di aprire il post ho fatto un po' di ricerca su google ma per il cast, se non sai cos'è è difficile reperire informazioni e con l'accento circonflesso mi uscivano tutt'altri risultati.

Ad ogni modo, vi ringrazio per le dritte fondamentali! ;)