![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 06.01.2000
Alter: 43
Beiträge: 2.232
|
![]() Hi!
Ich muss für die Matura ne 20seitige Ausarbeitung über 2 Themen haben. Hab eigentlich schon alles. Nach Verbesserung durch den Lehrer fehlt nur die Übergabe von Call by Reference und Call by Value Kann mir wer sagen wie man sowas übergibt ? danke im voraus ![]()
____________________________________
20x Die Ärzte LIVE@2008 Moskau, Prag, Eupen, 6x Berlin etc. ![]() |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
![]() Call bei reference:
Du übergibst einen Pointer auf eine Variable (die Original-Variable kann in der Subroutine verändert werden). Call bei Value: Du übergibst den Wert der Variable (die Variable selbst kann in der Subroutine nicht verändert werden). IIRC. ![]()
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 06.01.2000
Alter: 43
Beiträge: 2.232
|
![]() hi
was ist ein pointer? und mit welchen befehl übergebe ich das? danke!
____________________________________
20x Die Ärzte LIVE@2008 Moskau, Prag, Eupen, 6x Berlin etc. ![]() |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Ein Pointer ist ein Zeiger auf den Speicherbereich der Variable - das heißt du kannst dann direkt den Wert der Variable ändern.
Wei schon von _m3 geschrieben, hast halt by Value nur den Wert, aber nicht die Variable direkt. Befehle: abhängig von der Programmiersprache. In VB is eigentlich alles By Reference, außer du gibts in der Funktion/Prozedur ein ByVal vor die Variable. In C ists der nette Stern nach der Variable - also Var*, um By Reference zu übergeben. In C ist, soweit ich micht erinnere alles byVal, außer Strings, die sind by Reference und brauchen keinen *. .... Hast in der Schul net aufpasst.... ![]() ![]() |
![]() |
![]() |
![]() |
#5 |
Elite
![]() |
![]() c/c++/alle sprachen die das unterstützden
bsp für call by value Code:
int main (void) { int a = 10; increase(a); printf ("%d", a); } void increase (int var) { var ++; } Code:
int main (void) { int a = 10; increase (&a); printf ("%d", a); } void increase (int* var) { }
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees. |
![]() |
![]() |
![]() |
#6 | |
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
![]() Zitat:
![]() Aaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhh ![]() ![]() This is not funy! ![]() Wie Du call by reference oder value machst, hängt von der Programmiersprache ab, wie LLR schon geschrieben hat.
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
|
![]() |
![]() |
![]() |
#7 |
Elite
![]() |
![]() c/c++/alle sprachen die das unterstützden
bsp für call by value Code:
int main (void) { int a = 10; increase(a); printf ("%d", a); } void increase (int var) { var ++; } Code:
int main (void) { int a = 10; increase (&a); printf ("%d", a); } void increase (int* var) { (*var)++; } int* var ist ein pointer auf den speicherbereich eines ints mit dem namen var. sprich ein pointer zeigt immer auf einen speicherbereich eines bestimmten typs, der wert eines pointers ist nur die adresse, auf die er zeigt
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees. |
![]() |
![]() |
![]() |
#8 | |
Inventar
![]() Registriert seit: 06.01.2000
Alter: 43
Beiträge: 2.232
|
![]() Zitat:
____________________________________
20x Die Ärzte LIVE@2008 Moskau, Prag, Eupen, 6x Berlin etc. ![]() |
|
![]() |
![]() |
![]() |
#9 |
Elite
![]() |
![]() roots, löschst bitte den ersten beitrag von mir. war n doppelpost, hab mal zu schnell auf tab/leertaste gedrückt.
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees. |
![]() |
![]() |
![]() |
#10 | |
Inventar
![]() Registriert seit: 11.01.2003
Beiträge: 5.292
|
![]() Zitat:
![]() verwundert mich auch etwas
____________________________________
pssst tanj |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|