Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Simple. Kann mir jemand struct's erklären?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]
000
25.02.2004, 14:30 Uhr
~Benny
Gast


Ich hab jetzt schon mehrere Text durchgelesen, aber die Erfahrung gemacht, dass ich es erst anwenden kann wenn ich es durchschaut habe und da fehlt es mir noch.
Wenn jemand Zeit und Lust hat würde ich mich freuen, wenn er mir "Struct" erklären könnte. Anwendung und übertragen an functionen. THX a lot

-----------
WIN XP :: Turbo C
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.02.2004, 14:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


an nem struct ist nichts besonders, ist beim übergeben an funktionen quasi genauso wie mit normalen variablen...

an sonsten ist ein struct quasi nur eine zusammenfassung von zusammengehörigen variablen

als beispiel nehmen wir mal einen 2d-punkt, der hat ne x und ne y-koordinate


C++:
typedef struct{double x;double y;} my2dpoint;



wenn du jetzt ein punkt "anlegst" kannst du mittels des "Punkt-operators" auf die Members des Structs zugreifen


C++:
my2dpoint abc;
abc.x=4711,0815;
abc.y=1234,5678;
//.....usw


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 25.02.2004 um 14:55 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.02.2004, 14:52 Uhr
~Benny
Gast


my2dpoint brauch ich nur am Anfang sonst nie mehr, nur noch 'abc', oder?

was hat das auf sich, dass ich "my2dpoint abc;" schreibe?

muss ich vor das struct "typedef" schreiben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.02.2004, 14:55 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


das ist wie ne variablen deklaration
mit dem

C++:
typedef struct{double x;double y;} my2dpoint;



hast du einen neuen typen definiert.
my2dpoint ist jetzt genauso ein typ wie z.b. int, double char oder was auch immer...

das ich das ding jetzt abc genannt habe lage einfach daran das mir gerade kein besserer name eingefallen ist...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 25.02.2004 um 14:55 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.02.2004, 15:12 Uhr
~Benny
Gast


Is klar, dass abc irgendwas ist, aber ich versteh den Zusammenhang zwischen
"my2dpoint" und abc nicht.

ist abc mein "erster Datensatz" und ich kann dann

my2dpoint def;

schreiben für den zweiten datensatz? dann hab ichs verstanden.

bei der übergabe an functionen sieht des dann so aus?


C++:
void main ()
{
typedef struct{double x;double y;} my2dpoint;

function (abc);
}

void function (struct {double x_f;double y_f;} my2dpoint_func) {}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.02.2004, 15:22 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


äh nein...


C++:
typedef struct{double x;double y;} my2dpoint;

void myfunction(my2dpoint *p){p->x=3;p->y=5;}//oder was auch immer für einen blödsinn die funktion machen soll, in c++ kann mans dann auch per referenz machen...

int main(){
my2dpoint abc;
abc.x=4711.0815;
abc.y=1234.5678;
//so jetzt steht in der variable abc die vom typen my2dpoint ist in x 4711.0815 und in y 1234.5678
myfunction(&abc);
//jetzt hat myfunction die werte auf 3 und 5 gestetzt...
}



--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 25.02.2004 um 15:22 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.02.2004, 15:40 Uhr
~Benny
Gast



C++:
typedef struct
        {
        int zahl1;
        int zahl2;
        }
        zahlen;

int summe (zahlen *euz_su);

int main ()
{
zahlen euz;

euz.zahl1 = 1;
euz.zahl2 = 2;

summe (&euz);
return 0;
}

int summe (zahlen *euz_su)
{
int summe;

summe = euz_su.zahl1;
printf ("%d",summe);
return 0;
}


was mach ich falsch? ich bin manchmal etwas schwer von begriff, sorry, dass du dich mit sowas auseinandersetzen musst.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.02.2004, 15:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


probier mal so

C++:
typedef struct{int zahl1;int zahl2;}zahlen;
int summe (zahlen *euz_su);

int main (){
zahlen euz;

euz.zahl1 = 1;
euz.zahl2 = 2;

summe (&euz);
return 0;
}

int summe (zahlen *euz_su){
int summe;
summe = euz_su->zahl1+euz_su->zahl2;
printf ("%d",summe);
return 0;
}



dein problem sind wahrscheinlich die beiden operatoren . und ->

. brauchst du um an ein member des structs ranzukommen und wenn deine variable ein pointer ist musst du vorher noch dereferenzieren

also angenommen

p ist ein zahlenpointer auf ein zahlenobjekt;
dann musst du für den zugriff erst dereferenzieren und dann zugreifen

C++:
(*p).zahl1=5; //oder was auch immer


das ist ein bisschen ätzend deswegen gibt es den schönen -> operator


C++:
p->zahl1=5; //macht das gleiche ist aber besser lesbar


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
25.02.2004, 15:55 Uhr
~Benny
Gast


OK, verstanden.

Ich deklarier ein Struct immer global?

und wenn ich nun über scanf zahl1 einlese, dann so?


C++:
scanf ("%d",&euz_su->zahl1);

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
25.02.2004, 16:03 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


jo scanf sollte so funzen
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: