C++ Grundlagen Tutorial

Поділитися
Вставка
  • Опубліковано 13 гру 2024

КОМЕНТАРІ • 70

  • @DC-gq6ww
    @DC-gq6ww 3 роки тому +12

    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

  • @Masterzombie_
    @Masterzombie_ 20 днів тому

    Das Video hat es mir gut beigebracht, obwohl ich davon noch nie etwas gehört habe !

  • @MrManu2468
    @MrManu2468 4 роки тому +58

    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 роки тому +2

      Majestic Frog Pointer sind ja Extrems einfach habe immer gehört die sind mega schwer da finde ich schleifen deutlich schwerer

    • @DjNemas
      @DjNemas 4 роки тому +1

      @ 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 😭

  • @TheGammaking
    @TheGammaking 4 роки тому +2

    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!

  • @rootdev8106
    @rootdev8106 6 років тому +5

    Super, danke! Hat mir sehr für die Klausurvorbereitung geholfen!!

  • @oleg4209
    @oleg4209 2 роки тому +2

    Zeiger in C++ sind in Funktionen wie der ref-parameter in Methoden in C#, habe ich dies richtig verstanden

    • @TheRealZitroX
      @TheRealZitroX 2 роки тому +1

      Pascal: procedure name (var integer num);

  • @basaltfreund3845
    @basaltfreund3845 3 роки тому +1

    das ist super gemacht DANKE!! ....dein Logo erinnert mich an ein Blutwurstschaf :-))

  • @mo7aZa
    @mo7aZa 4 роки тому +3

    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

  • @bruderalex89
    @bruderalex89 4 роки тому +2

    Ist echt gut erklärt Danke :D

  • @iadriani2105
    @iadriani2105 7 років тому +1

    Sehr gut erklärt, danke!

  • @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👐

  • @iTzNabGamingPvP
    @iTzNabGamingPvP 3 роки тому

    Top Erklärung. Danke!

  • @justryde3011
    @justryde3011 3 роки тому +1

    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  3 роки тому +1

      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🙂

  • @peter-klausnikolaus4823
    @peter-klausnikolaus4823 3 роки тому

    Mega gut erklärt!

  • @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

  • @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. ^^

  • @fblackbird6872
    @fblackbird6872 3 роки тому +1

    hey, es wäre klasse wenn du auch den code hochladen könntest! Oder in die Info packen oder so!

  • @BlueNixDEV
    @BlueNixDEV 5 років тому

    Genial das Video!

  • @smnckl8602
    @smnckl8602 3 роки тому

    warum nicht einfach per reference an die Funktion übergeben, wenn man mehrere Rückgabewerte will? Ist das Gleiche oder?

  • @MrVaginalpilz
    @MrVaginalpilz 4 роки тому

    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  4 роки тому

      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.

  • @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

  • @henning7298
    @henning7298 3 роки тому

    vielen Dank!

  • @bugatti_0004
    @bugatti_0004 4 роки тому

    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?

  • @MrSwarsulf
    @MrSwarsulf 5 років тому +1

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

  • @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?

  • @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 5 років тому +1

      Du musst Rückgabe Datentyp der Funktion von void auf int ändern.

  • @mrnobody2492
    @mrnobody2492 6 років тому +1

    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  6 років тому +4

      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 6 років тому

      @@Pilzschaf Du bist der hammer, danke für die schnelle und ausführliche Antwort

  • @Florian-rp1jg
    @Florian-rp1jg 4 роки тому

    warum benutzt du endl ?

    • @PrexGraphics
      @PrexGraphics 4 роки тому +1

      endl bewirkt, dass dannach ein Absatz folgt

    • @b.kahraman9627
      @b.kahraman9627 4 роки тому +2

      Das sieht schöner aus

  • @jknf8555
    @jknf8555 4 роки тому

    Jetzt weiß ich wieder warum ich Informatik 2 damals in der Hochschule geskipped habe xD
    F**k*ng Zeiger...

  • @bennebi2948
    @bennebi2948 10 місяців тому

    geile Voicecracks

  • @luh2829
    @luh2829 3 роки тому

    #27

  • @Snoweuph
    @Snoweuph 3 роки тому +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)

  • @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

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

  • @timfeierabend
    @timfeierabend 3 роки тому

    Du und die 27. Unzertrennlich.

  • @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 роки тому +1

      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 роки тому +1

      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

  • @kaidobit6954
    @kaidobit6954 5 років тому +8

    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 роки тому +8

      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

  • @herbertjoos
    @herbertjoos 3 роки тому

    Auch nicht in der Lage gewesen, den Text für das Video zu vergrößern?

  • @QuickTalks1337
    @QuickTalks1337 4 місяці тому

    Mega gut erklärt. Danke