Wie stelle ich sicher, dass ich C-Zeiger verstehe? [geschlossen]

8

Ohne einen Mentor, der mich selbst mit Büchern und Referenzen im Internet unterrichtet, wie stelle ich sicher, dass ich Zeiger in C richtig verstehe? Welche Tests sollte ich durchlaufen, welche Fragen sind zu beantworten, um sicher zu sein?

    
Max Yankov 24.07.2011, 00:08
quelle

10 Antworten

14

Versuchen Sie hier in Stack Overflow Fragen zu Zeigern zu beantworten. Auf diese Weise werden Sie sehr schnell herausfinden, ob Ihr Verständnis von Zeigern korrekt ist oder ob andere Leute der Art und Weise, wie Sie diese Fragen beantwortet haben, nicht zustimmen.

    
sth 24.07.2011, 00:19
quelle
2

In K & amp; R gibt es Übungen, die Sie lösen können, um zu sehen, ob Sie es richtig gemacht haben. Sie können auch nach einigen Fragen suchen, die mit Lösungen von verschiedenen universitären (und nicht nur universitären) C-Programmierklassen gepostet wurden, und diese lösen (dann mit den Lösungen vergleichen).

    
littleadv 24.07.2011 00:11
quelle
2

Sie benötigen auch malloc und Strukturen für diese:

  • Implementieren Sie einfach und doppelt verknüpfte Listen.
  • Implementieren Sie einen Binärbaum.
  • Reagiere die qsort-Schnittstelle von stdlib mit einer Art deiner Wahl neu. (Nimmt ein Array beliebiger Länge mit beliebigen Größenargumenten und einem Zeiger auf eine Funktion, die auf sie wirkt)
  • Implementieren Sie einen Stack-ADT. (structs und pointer) Sie müssen malloc und structs kennen.

stack.h

%Vor%     
dougallj 24.07.2011 03:03
quelle
1

Testen Sie dies und Dies gibt Ihnen Ihre Syntaxkenntnisse, aber die korrekte Verwendung von Zeigern erfordert weit mehr als das Verständnis der Syntax. Benötigt Fachwissen nur die Zeit wird Ihnen geben.

Ich würde vorschlagen, dass Sie üben. Implementiere Speichermanager (am Anfang einfach) dann suche nach einem Open-Source-Projekt und sieh, wie sie mit der Zeigerverwaltung umgehen.

Ich mag diese Erklärung, ziemlich einfach.

UND von allen Kursen, die ich gesehen habe DIESE" von MIT ist sehr realistisch und ist offen plus frei (:

    
Erre Efe 24.07.2011 00:11
quelle
1

Erklären Sie, warum dieser Code auf einigen Systemen funktioniert, aber nicht auf anderen, und ob die Bedingung dafür ist, ob sie funktioniert.

%Vor%

Tipp: Wenn es scheitern wird, wird es ein Kompilierungsfehler sein.

    
R.. 24.07.2011 03:04
quelle
0

Ich sehe keine direkte Antwort dafür.

Schreiben Sie einfach eine Menge Testcode, der sich mit Zeigern beschäftigt und überprüfen Sie, ob alles so funktioniert, wie Sie es erwarten. Verwenden Sie den Debugger, wenn Sie nicht sicher sind.

    
Jonathan Wood 24.07.2011 00:10
quelle
0

Probieren Sie eine Zeigerspur aus. Zum Beispiel, Problem 2 von hier ( Lösungen ).

Dies ist technisch in C ++, aber alle Zeiger Teile der Frage sind in C.

    
Alex Churchill 24.07.2011 00:15
quelle
0

Einige "Brot und Butter" verwendet Zeiger, die Sie verstehen müssten:

  • Repräsentiert ein Array von Daten.
  • Zeigen Sie auf ein bestimmtes Element des Arrays (für die Enumeration).
  • Übergeben Sie die Referenz der Daten an die Funktion, damit die Funktion die ursprüngliche Variable ändern kann.
  • Zugriff dynamisch zugewiesenen Speicher (malloc für C oder neu für C ++)
Lea Hayes 24.07.2011 02:47
quelle
0

Ein Schlüssel zum Verständnis von Zeigern ist das Verständnis der zugrundeliegenden Computerarchitektur. Was ist die Assemblersprache und wie funktioniert sie? Wie grundlegende Prozessoren Anweisungen handhaben. Was Stapel und Haufen sind. Wie funktioniert der Call-Stack? Wie funktioniert die Speicherzuweisung?

    
bshirley 24.07.2011 04:22
quelle
0

Versuchen Sie es jemandem zu erklären, der kein Programmierer ist. Wenn Sie die Zeiger erklären können, dann verstehen Sie es. Wenn du es verwirrt bekommst, erklärst du es noch nicht.

    
Ken Aspeslagh 24.07.2011 04:38
quelle

Tags und Links