2009-06-22 7 views

Répondre

6

Say start des points à l'emplacement de mémoire 0x12345678, et la mémoire ressemble à ceci:

0x12345678 0x12 
    0x12345679 0x34 
    0x1234567a 0x56 
    0x1234567b 0x78 
    0x1234567c 0x9a 
    0x1234567d 0xbc 

puis something est égal à 0x9a.

Le fait que something est de type int n'a pas d'importance à la façon dont start[4] est interprété - il obtient la valeur byte de l'octet 4 emplacements loin de start.

+0

Merci! J'ai besoin d'entrer 15 caractères pour poster ceci, ce qui m'amène à croire que 'les remerciements en général ne sont pas autorisés, ce qui veut dire que cela sera effacé prochainement, donc j'espère que vous le verrez! Merci! –

+1

@Sam: Personnellement, je pense que plus "merci" sur SO le mieux. N'hésitez pas à les tamponner avec des smileys si nécessaire. 8-) – RichieHindle

+0

Il y a toujours un moyen :) –

2

La valeur de quelque chose est la valeur d'octet du décalage 4 à partir du début élargi à un type int.

Il est équivalent au code suivant

byte temp = start[4]; 
int something = temp; 
2

start[4] évaluera à:

*(start + 4) 
Questions connexes