Je n'arrive pas à comprendre certaines syntaxes de typage. Par exemple.Type de coulée, problème de langage c
float f=7.0;
short s=*(short *)&f;
Que se passe-t-il ici short s=*(short *)&f
? On dirait que nous cast something
comme un pointeur vers un court et puis l'initialisation s
à la valeur stockée dans l'adresse pointée par something
.
Maintenant, ce something
ressemble à l'adresse de la variable f
. Donc, si something
= address of f
, il me semble que nous faisons address of f
comme un pointeur vers un court, puis la dé-référençant. Je sais que ce que j'ai dit est faux, mais je n'arrive pas à le visualiser.
Merci.
Quelqu'un répondu à cette question, mais pour une raison quelconque supprimé. Un point qu'il a déclaré était que '& f' est un pointeur vers un flotteur. Je suppose que le problème auquel je faisais face est que je visualiserais '& f' comme une valeur, c'est-à-dire une adresse et non comme une variable/pointeur. Donc, ce qui se passe ici, c'est qu'un 'pointeur sur float' est lancé comme un 'pointeur vers court', n'est-ce pas? –
@ naruto-uzumaki Oui, la distribution dans votre exemple est une conversion de pointeur de "pointeur à flotteur" à "pointeur à court". –
Merci! C'est génial d'apprendre quelque chose de nouveau chaque fois que je poste à stackoverflow :) –