Es wird gesagt, dass *
Operator in C bedeutet "Zeiger auf eine Variable" und folgenden Code ist legal:Warum kann * nicht gleichzeitig verwendet werden. ein Mitglied der Struktur besuchen?
#include <stdio.h>
int main(){
int a=5;
int *p=&a;
printf("%d\n", *p);
return 0;
}
Aber der folgende Code ist illegal:
#include<stdio.h>
struct pair{
int a,b;
};
int main(){
struct pair Alice, *Bob=&Alice;
Alice.a=1;
Alice.b=2;
printf("%d %d\n",*Bob.a,*Bob.b);
return 0;
}
Also, warum die *
Operator funktioniert gut für Zeiger auf normale Variablen, funktioniert aber nicht für Zeiger auf Strukturen?
Postfix '.' hat eine höhere Priorität als einstellige' * '. – EOF
Dies ist wahrscheinlich, was Sie suchen http://stackoverflow.com/questions/1238613/what-is-the-difference-between-the-dot-operator-and-in-c –
Es ist nicht, dass es nicht Arbeit, was du sagst, funktioniert, du bekommst nur den Vorrang des Betreibers falsch. – babon