Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » array

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 ]
010
14.01.2005, 21:49 Uhr
~gast
Gast


habe ich das richtig verstanden.
zeiger werden nur in funktionen bevorzugt.wenn ich als parameter die adresse übergebe nimmt er auch sicher diesen wert bzw. wenn ich später im programm eine variable vom ergebnis dieser funktion brauche kann ich nur über die adresse an den inhalt gelangen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
14.01.2005, 22:33 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


äh nein nicht so ganz...
das was du beim funktionsaufruf übergibts wird auf den stack kopiert... dann kannst du damit innerhalb der funktion arbeiten und wenn die funktion zuende ist wird es wieder gelöscht...

das heisst wenn du eine variale x übergibst wird hiervon eine kopie angefertig mit der du innerhalb der funktion arbeitest... wenn du den wert von x innerhalb der funktion veränderst, änderst du dementsprechend nicht x selber sondern nur die automatisch angelegte kopie die beim verlassen wieder zerstört wird...

um also auf x selber verändern zu können kannst du z.b. eine zeiger übergeben... dann wird der zeiger kopiert und nicht x selber... wenn du das modifizierst worauf der zeiger zeigt wird damit direkt x modifiziert....

deshalb musst du auch bei scanf die adresse übergeben der variablen in die der wert geschrieben werden soll und nicht die variable selber da intern sonst nur mit einer kopie gearbeitet werden würde die dann nach dem durchlauf von scanf nicht mehr existieren würde und somit in der von dir gewünschten variable der wert nicht stehen würde... bei printf hingegen kannst du den wert direkt übergeben da diese den wert ja nicht verändert sondern direkt ausgibt... da spielt es also keine rolle das er kopiert wird...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
15.01.2005, 16:28 Uhr
~gast
Gast


wenn ich mich nicht täusche haben diese zwei bsp die selbe funktion:

C++:
void dateneinlesen()
{
     int i;

     for(i=0; i<5; i++)
     printf ("namen eingeben:  ");
     scanf ("%s", daten[i].name);
}


void dateneinlesen()
{
     int i;

     for(i=0; i<5; i++)
     printf ("namen eingeben:  ");
     scanf ("%s", daten[i]->name);
}


das zweite wäre nehme ich an besser weil es über zeiger geht.
aber in einem buch wurde die erste funktion verwendet.
wieso wurde im buch die erste bevorzugt

Dieser Post wurde am 15.01.2005 um 16:51 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
15.01.2005, 16:52 Uhr
Pablo
Supertux
(Operator)


@gast: ich weiß nicht, wie oft dir gesagt werden muss, dass du die verdammten cpp Tags selber benutzen sollst. Halte dich an den Regeln!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
15.01.2005, 17:18 Uhr
~gast
Gast


mein gott wennst nur wegen diesen scheiß cpp meckerst
wie verwendet man die
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
15.01.2005, 17:20 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@gast
cpp tags stehen gleich links neben dem feld in dem du deine antwort postest... einfach raufklicken... oder du registrierst dich dann kannst du auch deine beiträge editieren...

zu deiner frage... wie genau hast du daten definiert... (und ist es in beiden fällen gleich definiert?)
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
15.01.2005, 17:20 Uhr
Pablo
Supertux
(Operator)


[cpp]
dein code hier
[/cpp]

www.fun-soft.de/help2.php
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
15.01.2005, 17:58 Uhr
~gast
Gast


@windalf
was meinst du genau mit wie ich meine daten definiert habe.
es ist alles gleich der einzige unterschied ist der im scanf
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
15.01.2005, 18:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also wenn du scanf mit %s aufrufst heisst das das du an die stelle auf die die adresse zeigt die du übergibst ein char-array (string) schreibst...

in mindestens einem fall ist das totaler murks den du da gemacht hast hängt halt davon ab wie du daten definiert hast..., also welchen types daten ist (ich vermute mal int wird es nicht sein )
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 15.01.2005 um 18:08 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
15.01.2005, 18:13 Uhr
~gast
Gast



C++:
struct datei
{
char name[];
char adresse[];
.
.
.
};

struct datei daten[];



meinst du das
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ 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: