J'ai toujours voulu savoir quelle est la vraie différence entre la façon dont le compilateur voit un pointeur sur une structure (en supposé C) et une structure elle-même.Vraie chose à propos de "->" et "."
struct person p;
struct person *pp;
pp->age
, je pense toujours que le compilateur ne: "valeur de p + offset de atribute "âge" dans le struct". Mais que fait-il avec person.p
? Ce serait presque pareil. Pour moi "le programmeur", p n'est pas une adresse mémoire, c'est comme "la structure elle-même", mais bien sûr ce n'est pas la façon dont le compilateur gère cela.
Je pense que c'est plus une chose syntaxique, et le compilateur fait toujours (&p)->age
.
J'ai raison?
Pour ne pas détourner la question, mais en tant qu'étudiant, je suis curieux de savoir dans quel domaine on apprendrait sur ce genre de chose. Conception de compilateur? (Je veux dire, évidemment, j'ai appris (* p) .q est le même que p-> q dans ma classe C++) – Adam
Habituellement, un cours de systèmes informatiques de bas niveau (le genre qui traite de l'allocation de mémoire, cadres de pile, etc.) . – Amber
Merci - je suis seulement un étudiant en deuxième année, donc je suis sûr que nous y arriverons finalement – Adam