Zum Inhalt springen

Was bedeutet "void" eigentlich genau?


Kurt Mustermann

Empfohlene Beiträge

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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."

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...