Тёмный

C++ Grundlagen Tutorial  

Pilzschaf
Подписаться 8 тыс.
Просмотров 38 тыс.
50% 1

Heute zeige ich dir, wie du Zeiger bzw. Pointer in C++ nutzen und einsetzen kannst. Dabei hoffe ich es halbwegs einfach und verständlich erklärt zu haben. Wenn noch Fragen offen sind dann meld dich einfach in den Kommentaren ;)
Meine Spiele:
- Just a Paddle (Android): play.google.co...
- Mehr Spiele folgen bald, schau auf meiner Website oder meinen Social Media Kanälen vorbei, um auf dem Laufenden zu bleiben ;)
Wo du mich noch finden kannst
- Website: pilzschaf.de
- Twitter Pilzschaf: / pilzschaf
- Twitter Pilzschaf Studio: / pilzschafgs
- Instagram: / pilzschaf

Опубликовано:

 

5 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 69   
@MrManu2468
@MrManu2468 4 года назад
Es bedarf: 2 Semester der Informatik Endloses Pauken ODER Ein 20 Minuten Video Um meinem verklumpten Gehirn beizubringen wo man Pointer braucht und wie man sie verwendet.
@Truckerausleidenschaft
@Truckerausleidenschaft 4 года назад
Majestic Frog Pointer sind ja Extrems einfach habe immer gehört die sind mega schwer da finde ich schleifen deutlich schwerer
@DjNemas
@DjNemas 3 года назад
@ Majestic Frog Ohja wie du recht hast, same mit Ausbildung! Ich beschäftige mich im Privaten gerade mit OpenGL und jetzt geht so ein extrem helles Licht bei mir oben auf. :D @Pilzscharf Danke für das Video! :)
@luh2829
@luh2829 3 года назад
Ich habe das Wort "verklumpt" noch nie in diesem Kontext gehört und es verstört mich xD
@jasmintea8825
@jasmintea8825 Год назад
versteh es immer noch nicht, es will mir nicht einleuchten 😭
@DC-gq6ww
@DC-gq6ww 3 года назад
Ich find Deine Videos seeehr hilfreich. Ich bin im 1.Semester und neu im Thema. Die Videos veranschaulichen die Inhalte wesentlich besser als die trockenen Vorlesungen. DANKE LIEBES PILZSCHAF
@TheGammaking
@TheGammaking 4 года назад
Ich hatte bis jetzt immer nur mit Pointern Probleme und brauchte jetzt ne Auffrischung. Nach deinem Video kommt es mir so vor als hätte ich es besser wie jemals zuvor verstanden ^^ danke!
@oleg4209
@oleg4209 2 года назад
Zeiger in C++ sind in Funktionen wie der ref-parameter in Methoden in C#, habe ich dies richtig verstanden
@TheRealZitroX
@TheRealZitroX 2 года назад
Pascal: procedure name (var integer num);
@rootdev8106
@rootdev8106 6 лет назад
Super, danke! Hat mir sehr für die Klausurvorbereitung geholfen!!
@QuickTalks1337
@QuickTalks1337 Месяц назад
Mega gut erklärt. Danke
@mo7aZa
@mo7aZa 4 года назад
schwer ist nur wenn man's sich schwer macht. ich bin zwar noch n Einsteiger, mein Lieblingsthema ist aber Zeiger -Arithmetik Edit; wer in c++ programmiert muss sich zwangsläufig mit dem Aufbau der internen Speicherstruktur auseinander setzen. da dynamische Speicherverwaltung ein wichtiges Thema ist. Grüße
@basaltfreund3845
@basaltfreund3845 3 года назад
das ist super gemacht DANKE!! ....dein Logo erinnert mich an ein Blutwurstschaf :-))
@TheRealZitroX
@TheRealZitroX 2 года назад
Fehlen bißchen Fachbegriffe, die ich in der Vorlesung aus C kenne - ansonsten helfen mir deine Videos beim C++ lernen für ein Praktikum Ende des Jahres weiter👐
@bruderalex89
@bruderalex89 4 года назад
Ist echt gut erklärt Danke :D
@iTzNabGamingPvP
@iTzNabGamingPvP 3 года назад
Top Erklärung. Danke!
@MrSwarsulf
@MrSwarsulf 5 лет назад
XD Ich bin gerade dabei, Komplet kalt und ohne Vorkenntnisse mit Hilfe deiner Videos C++ zu lernen. Ich habe bis jetzt noch nicht den genauen nutzen verstanden...
@peter-klausnikolaus4823
@peter-klausnikolaus4823 3 года назад
Mega gut erklärt!
@henning7298
@henning7298 2 года назад
vielen Dank!
@timw.4867
@timw.4867 2 года назад
Hi Pilzschaf, super Video! Eigentlich, um es einfach zu erklären, macht man aus einer Variable noch eine Variable, oder? xD
@justryde3011
@justryde3011 2 года назад
Vielen Dank für Deine Videos - alles Wichtige verständlich erklärt. Du sagtst, der Vorteil vom Pointer ist, das man große Variablen nicht als Kopie an eine Funktion übergeben muss. Wenn man der Funktione den pointer übergibt, muss die Funktion die große Variable dann nicht auch erstmal aus dem Speicher holen, bevor sie damit etwas anfngen kann? Ich meine, einmal muss doch die der variablenwert gelesen und der Funktion "gegeben" werden. Ist das nicht egal wann das genau passiert?
@Pilzschaf
@Pilzschaf 2 года назад
Das ist richtig. Gelesen werden muss der Speicher so oder so, wenn darauf zugegriffen wird. Ohne Pointer muss das Objekt allerdings kopiert werden. Da die Funktion das Objekt modifizieren können soll ohne dass sich das Ursprungsobjekt verändert.
@TheRealZitroX
@TheRealZitroX 2 года назад
@@Pilzschaf ein Semester Assembler und man versteht wie schnell das einem wieder zu C und höher führt um nicht in der Hölle zu verbrennen🙂
@BlueNixDEV
@BlueNixDEV 5 лет назад
Genial das Video!
@fblackbird6872
@fblackbird6872 3 года назад
hey, es wäre klasse wenn du auch den code hochladen könntest! Oder in die Info packen oder so!
@smnckl8602
@smnckl8602 3 года назад
warum nicht einfach per reference an die Funktion übergeben, wenn man mehrere Rückgabewerte will? Ist das Gleiche oder?
@TheEnd-uo6pn
@TheEnd-uo6pn 3 года назад
Das casten ist doch in der Hinsicht nicht nötig, da du 2 integer teilst und sie in einem integer speicherst, dementsprechend kommt da eine ganzzahl doch schon raus. Wäre der dividend oder divisor ein float, dann müsstest du casten, aber ist es nicht sonst unnötig?
@mrnobody2492
@mrnobody2492 5 лет назад
Die Funktionszeiger hab ich noch nicht ganz verstanden aber ich schau mir noch paar Sachen dazu an. Also in Zeile 44 wird ein Funktionszeiger erstellt, welcher natürlich durch die Orginalfunktion einen int Zeiger (int*) beinhaltet. Was passiert dann am Ende mit = SetTo27. Wird damit der int Zeiger (int*) initialisiert ? In Zeile 45 wird dann die Funktion über den Funktionszeiger aufgerufen, welcher dann den initialisierten int Zeiger(int*) beinhaltet und gleichzeitig in das Array schreibt oder wie ? Hab mal versucht meinen Gedankengang zu erklären :D vielleicht kannst du mir sagen ob ich das so richtig verstanden habe xD Vielen Dank schon mal, mach weiter so super Videos :)
@Pilzschaf
@Pilzschaf 5 лет назад
Mit dem Funktionszeiger geben wir an, dass dort eine Funktion gespeichert werden kann, die einen void Rückgabewert und einen einzigen Parameter und zwar den int Zeiger besitzt. int (*funcPointer)(void) wäre z.B. auch ein Funktionszeiger, der aber nur Funktionen entgegen nehmen kann, die einen int als Rückgabewert haben und keine Parameter erwarten. Da SetTo27 Eine Funktion ist, die genau die Eigenschaften unseres Funktionszeigers hat sprich einen void Rückgabewert und einen int* als Parameter können wir diese dem function pointer Zuweisen und darüber dann auch ausführen. Nochmal etwas mehr Lowlevel: Wenn wir normalerweise eine Funktion aufrufen dann springen wir mit der aktuellen Ausführung dorthin, wo der Programmcode der Funktion steht. In den Functionpointer schreiben wir demnach auch einfach nur die Addresse, an der Programmcode der Funktion steht. Ich werde vielleicht irgendwann mal einen gesonderten Part dazu machen, wo wir uns das ganze auch mal von Grund auf anschauen werden. Tatsächlich nutzt man Function Pointer aber gar nicht so häufig, weshalb der Teil dazu hier in dem Video auch verhältnismäßig kurz war.
@mrnobody2492
@mrnobody2492 5 лет назад
@@Pilzschaf Du bist der hammer, danke für die schnelle und ausführliche Antwort
@4theloveoflife431
@4theloveoflife431 3 года назад
Tolles Video! Welches Programm nutzt du zum programmieren? Ist nicht VisualSTudio oder? VG
@bzero7857
@bzero7857 3 года назад
ja es ist visualstudiocode hat er auch in dem ersten video der playlist gezeigt
@YourLovelyCookie
@YourLovelyCookie 3 года назад
@@bzero7857 ist es nicht kdevelop?
@YourLovelyCookie
@YourLovelyCookie 3 года назад
Und das Hello world hat er in Visual studio geschrieben
@Zombi-uw9ml
@Zombi-uw9ml 3 года назад
In diesem Video benutzt er KDevelop
@bzero7857
@bzero7857 3 года назад
@@Zombi-uw9ml ja hab es gerade auch gemerkt lol sry
@JH-hz9cn
@JH-hz9cn 3 года назад
was bringt denn das sogenannte "casten" in 11:32? Ich weiß zwar, dass es sich auf den Datentyp bezieht aber sehe den Sinn noch nicht ganz. ^^
@MrVaginalpilz
@MrVaginalpilz 3 года назад
Warum muss man einer Funktion, die einen Zeiger als input nimmt eine Adresse übergeben und nicht einen Zeiger? Könnte ich zum Beispiel einen Zeiger erstellen, der auf die Adresse irgendeiner Variable zeigt an SetTo27 übergeben, damit die Funktion den Wert der Variable auf 27 setzt?
@Pilzschaf
@Pilzschaf 3 года назад
Genau das ist möglich. Wenn du die Addresse übergibst erstellst du damit im Endeffekt auch nur einen temporären Zeiger der entsprechend auf die Variable zeigt, deren Addressse du abgefragt hast.
@joshua_eff1757
@joshua_eff1757 5 лет назад
wenn ich beim VoidEuclidiendivide return 0 / return-1 eingebe dann schreibt er :" Der rückgabewert stimmt nicht mit dem Funktionstyp überein
@JugglerDaniel
@JugglerDaniel 4 года назад
Du musst Rückgabe Datentyp der Funktion von void auf int ändern.
@jknf8555
@jknf8555 3 года назад
Jetzt weiß ich wieder warum ich Informatik 2 damals in der Hochschule geskipped habe xD F**k*ng Zeiger...
@bugatti_0004
@bugatti_0004 3 года назад
Wie kann ich dass an ein Programm, z.B. ein Spiel attachen, um dann die weerte zu ändern?
@Wawwior
@Wawwior 3 года назад
sowas wie Cheat Engine?
@bennebi2948
@bennebi2948 8 месяцев назад
geile Voicecracks
@Snoweuph
@Snoweuph 3 года назад
Das Video ist cool und hilfreich aber deine Art und weise das Wort Integer auszusprechen tut mir weh, es ist ein Integer und kein In-Tee-ger (das ger wird gjer ausgesprochen)
@Florian-rp1jg
@Florian-rp1jg 4 года назад
warum benutzt du endl ?
@PrexGraphics
@PrexGraphics 4 года назад
endl bewirkt, dass dannach ein Absatz folgt
@b.kahraman9627
@b.kahraman9627 4 года назад
Das sieht schöner aus
@KelevraDavid
@KelevraDavid 3 года назад
Alle am Studieren hier und ich sitze hier 1. Tag in Ausbildung zum Fachinformatiker f. Systemintegration und prügel mir Pointer rein :D
@luh2829
@luh2829 3 года назад
#27
@timothyblake5532
@timothyblake5532 4 года назад
Das * ist das Gegenstück zu & . Danke das hat mir sehr geholfen. Das Buch von Michael Bonacina ist wirklich scheisse im Kapitel Zeiger.
@herbertjoos
@herbertjoos 3 года назад
Auch nicht in der Lage gewesen, den Text für das Video zu vergrößern?
@timfeierabend
@timfeierabend 3 года назад
Du und die 27. Unzertrennlich.
@therealniggels
@therealniggels 3 года назад
dachte ich mir auch die ganze zeit xD
@kaidobit6954
@kaidobit6954 5 лет назад
super videos bis jetzt nur eine sache ist sehr zu bemängeln: bitte und ich kann in worten nicht ausdrücken wie stark diese bitte ist, gewöhne dir an integer wie im englischen auszusprechen, denn 1. das ist basic c++ sprich für anfänger/leute ohne programmierkentnisse gedacht, diese gewöhnen sich die falsche aussprache an, wenn der begriff nicht bekannt ist und grundätzlich ist es auch eine schlechte vorgehensweise schülern eigenheiten des lehrers mit beizubringen, ganz egal welche, und sollte möglichst vermieden werden 2. ist die vorherschende sprache in der IT englisch und bei so einem verbreiteten begriff ist das für deine lehrlinge und dich eine blamage es so auszusprechen 3. ich persönlich habe bereits vorkenntnisse und schaue mir die serie an um einen einstieg in c++ zu bekommen (komme von java), im ersten moment fragte ich mich was du überhaupt meinst, denn selbst im deutschen heißt es nicht 'intehger' sondern ganzzahl, ab dem moment wo ich gemerkt habe was du damit überhaupt meinst hat es nur noch gestört falls dir das wegen alteingesessenheit nicht möglich ist dann sag wenigstens 'int' ansonsten wie gesagt gute arbeit
@FlorianScharnofske
@FlorianScharnofske 4 года назад
Super Kommentar. Nur eine zwei Sachen sind sehr zu bemängeln: //Das ist etwas ironisch und als Spaß gemeint. Ich kann in Worten nicht ausdrücken, wie stark meine Bitte ist, dass Schreibende der deutschen Sprache auf die Groß- und Kleinschreibung achten. Bitte gewöhne Dir das an. 1. Ich mag die deutsche Aussprache von "integer". Ich hatte in der Schule Latein. Vielleicht liegt es daran. 2. Was ist wichtiger, zu verstehen was man tut oder "integer" richtig aussprechen? Hör mir auf mit Blamage. Da sollte die Mehrheit der Deutschen vielleicht gar nicht programmieren, wenn ich mir so die Aussprache des Englischen bei den meisten Deutschen anhöre. 3. Wenn ein Programmierer Schwierigkeiten damit hat, dass es zwei oder noch mehr akustische Stellvertreter für ein geschriebenes Wort gibt, dann wird er bei seiner Arbeit mehr Probleme haben, als nur, sich von der Aussprache gestört zu fühlen. Falls dir das wegen Alteingesessenheit nicht möglich ist, dann weiß ich auch nicht. ;-)
@markusbraun8463
@markusbraun8463 3 года назад
Die Aussprache ist doch vollkommen korrekt. Er spricht das Wort "Integer" halt deutsch aus, dagegen ist überhaupt nichts einzuwenden wie ich finde.
@markusbraun8463
@markusbraun8463 3 года назад
@WannaBeDev de.wikipedia.org/wiki/Integer_(Datentyp) Es gibt zwei verschiedene Arten dieses Wort auszusprechen. Die erste wurde hier von Pilzschaf verwendet. Du kannst dir ja mal die Lautschrift im Wikipedia-Artikel anschauen.
@markusbraun8463
@markusbraun8463 3 года назад
@WannaBeDev Nur weil du es noch nie gehört hast, muss die deutsche Aussprache also falsch sein? Mein alter Informatiklehrer hat es ebenfalls so ausgesprochen. Und auf leo.org findest du das Wort im Deutschen z.B. auch: dict.leo.org/englisch-deutsch/Integer-Wert Ich glaube nicht, dass da einfach nur das Englische Wort gemeint ist. Die Aussprache ist vielleicht ungewöhnlich, aber sicher nicht falsch.
@markusbraun8463
@markusbraun8463 3 года назад
@WannaBeDev Jung, du bist ja mal richtig aggro. :D Kann man dich immer so leicht triggern? Es bietet auf jeden Fall gute Unterhaltung! :D
@Turjak_art
@Turjak_art 3 года назад
Hat sich jemals jemand gefragt wieso ein Zeiger einen Datentyp braucht? Schlussendlich besitzt er immer den gleichen Typ und nämlich eine Adresse?!
@Pilzschaf
@Pilzschaf 3 года назад
Das stimmt. Deshalb gibt es auch void pointer. Sobald man aber auf die Daten, auf die der Zeiger zeigt zugreifen will muss man wissen, um was für einen Typ es sich handelt.
@Turjak_art
@Turjak_art 3 года назад
@@Pilzschaf Danke
@Billi.
@Billi. 3 года назад
Das hast du falsch verstanden. Der Datentyp ist nicht die Adresse. Die Adresse ist der Wert/value vom pointer! Unabhängig vom pointer Datentyp. Stell dir den pointer als eine Funktion vor. Er hat einen Datentyp und als wert eine Adresse. Wenn du nun auf den Inhalt der auf dieser Adresse zugreifen willst (ändern/lesen), dann nimmt die Funktion seine gespeicherte Adresse und geht erst dorthin im Speicher um die Aktion auszuführen. Warum gibt es also nun void pointer? Weil du evtl. nicht wissen kannst welchem Datentyp der Anwender deiner Funktion übergibt oder schlimmer, es erst zur Laufzeit passiert oder entschieden wird. Ein anderer Einsatzzweck sind um generische Funktionen bauen zu können die verschiedene Datentypen annehmen kann ohne diese Funktion mehrfach neu zu erstellen. In c++ benutzt man dafür aber lieber template Funktionen! Vergiss aber nicht, der Zugriff auf die echten Daten hinter dem Pointer braucht trotzdem einen Datentyp! Dieser wird dann halt gecastet. #> void* p = &intvar; #> cout
@iadriani2105
@iadriani2105 6 лет назад
Sehr gut erklärt, danke!
Далее
C++ Grundlagen Tutorial #013 Zeichenketten und Strings
16:40
这位大哥以后恐怕都不敢再插队了吧…
00:16
НЮША УСПОКОИЛА КОТЯТ#cat
00:43
Просмотров 671 тыс.
C++ Grundlagen Tutorial #011 Arrays
16:31
Просмотров 23 тыс.
C++ Grundlagen Tutorial #023 Klassen und Objekte
28:51
Master Pointers in C:  10X Your C Coding!
14:12
Просмотров 312 тыс.
018 - Zeiger this - Kapselung - C++ Tutorial Deutsch
16:22
C++ Grundlagen Tutorial #025 Grundlagen der Vererbung
18:46