Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo an alle !

Ich hätte da mal eine grundlegende Frage. Ich fange gerade erst mit C an, und ich finde daß für Anfänger die Bücher schon etwas schwer verständlich sind. Vielleicht könnt ihr mir ja helfen. :confused:

Das wäre super! :OD

OK, hier meine Frage:

1. Was bedeutet eigentlich void genau?

Beschreibung

Das Schlüsselwort void bezeichnet den Typ des Rückgabewerts von Funktionen, die keinen Wert zurückliefern.

Könnte mir das einer mal verständlich erklären? Was heißt Rüchgabewert? Und, warum keinen Wert zurückliefern? Manchmal beginnt ein Prg mit main(), manchmal mit int main() oder void main() Wo besteht der Unterschied?

Oder zum Beispiel beim Quicksort Algorithmus:

public void quick(elementType x[], int left, int right)

{

int i=left, j=right;

.... usw

Was bedeutet das return 0 ?

Oft ließt man in Programmen am Ende noch return 0. Wofür steht das ?

Geschrieben

void ist ein Datentyp wie int oder char.

Aber void ist ein Datentyp ohne Inhalt. Er heisst soviel wie "NICHTS".

Also ein Art Dummydatentyp, er eingesetzt wird bei Zeigern, wenn der eigentliche Datentyp nicht bekannt oder nicht von Belang ist.

Oder wie in deinem Beispiel als Rückgabedatentyp einer Funktion nicht Nichts (also void) zurückliefert.

Mit einem Rückgabewert kann man einer aufrufenden Funktion z.B. das Ergebnis einer Funktion mitteilen z.B.

int iSumme = addiere(10,20);

Genau dafür ist auch "return" da. In dem Beispiel würde in der Funktion "addiere" eine Anweisung return stehen die die Summe zurückliefert.

Zu void main() und int main():

Das einzig wirklich korrekte in C ist int main().

Dabei würde die Rückgabe von 0 (return 0) bedeuten, dass das Programm erfolgreich abgeschlossen wurde.

Bei einigen Compilern funktioniert void main(), aber es ist nicht wirklich korrekt.

Hoffe, dass ich ein bißchen helfen konnte.

Geschrieben

int main () oder int main (void) ist korrekt in C und C++. main() oder main (void) ist in C korrekt, allerdings nur dort (ANSI-Standard); bei C99 und C++ ist dies nicht zulässig. Richtig schön sind die beiden letzten Varianten (ohne int) sowieso nicht (schlechter Stil) und man sollte die ersten beiden Varianten verwenden, die auch in C++ und C99 zulässig sind.

Zu void:

void kann man sich als einen Datentyp vorstellen, dessen Wertemenge leer ist. Wie themaster schon meinte, benutzt man void, wenn eine Funktion keinen Wert zurückliefert (in Pascal wäre es eine Prozedur). Wenn Du eine Funktion schreiben würdest, die einen Text ausgibt, möchtest Du ja nicht unbedingt einen Rückgabewert haben. (Beachte: printf liefert int zurück)

Zu public:

public ist kein C! public bedeutet in C++, daß man auf eine Funktion "von außen" zugreifen kann. Es gibt public, private und protected. Wenn man eine Klasse programmiert, möchte man nicht, daß Variablen direkt verändert werden können, weil die Werte zum Beispiel nur einen bestimmten Wertebereich liegen sollen. Dann würde man die Variablen als private deklarieren. Man kann also nicht von außen auf die Variablen zugreifen, sondern nur das Objekt selbst kann die Werte verändern. Um sie zu verändern braucht man nun eine Funktion, die sollte public sein, damit sie auch von außen aufgerufen werden kann. In dieser Funktion kann man nun testen, ob der Wert für die Variable ein gültiger ist. Wenn dem so ist, kann man die Variable in der Funktion mit einem neuen Wert belegen. Wenn man Klassenhierachien (führt jetzt viel zu weg vom Thema) hat, dann benötigt man (wenn man dann will) protected.

return:

Mit return springt man aus einer Funktion zurück zur aufrufenden Funktion. Wenn man return x schreibt, wird der Wert x zurückgegeben. x muß den gleichen Datentyp haben, wie der Datentyp, der als Rückgabetyp bei der Funktion angegeben wurde.

HTH

Jan

Geschrieben

Man findet gelegentlich auch in der "Trivialliteratur" den Ausdruck "the Void", womit schlichtweg "das Nichts" gemeint ist.

Inwieweit da Bedeutungsunterschiede zu Nil, Nothing, usw. herrschen, kann ich nicht beurteilen. Vermutlich wird es da feine Abstufungen geben bzw. verschiedene Bereiche der Anwendung, sonst gäbe es nicht meherere (von der Bedeutung her) sehr ähnliche Wörter.

Mein Traum ist es, im Silicon Valley mit einem T-Shirt rumzulaufen, auf dem steht: "I am void."

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...