Ein Zeiger ist ein Datentyp, dessen Wert sich direkt auf einen anderen Wert bezieht (oder auf einen anderen Wert "zeigt"), der an anderer Stelle im Computerspeicher unter Verwendung seiner Adresse gespeichert ist.
Ich habe gehört, dass die Aufnahme von Nullreferenzen in Programmiersprachen der "Milliarden-Dollar-Fehler" ist. Aber wieso? Sicher, sie können NullReferenceExceptions verursachen, aber was nun? Jedes Element der Sprache kann bei unsachgemäßer Verwendung eine Fehlerquelle darstellen. Und was ist die Alternative? Ich nehme an, anstatt dies zu sagen: Customer c = Customer.GetByLastName("Goodman"); …
C hat Zeiger und Java hat sogenannte Referenzen. Sie haben einige Gemeinsamkeiten in dem Sinne, dass sie alle auf etwas hinweisen. Ich weiß, dass Zeiger in C die Adressen speichern, auf die sie zeigen. Speichert die Referenz auch die Adresse? Wie unterscheiden sie sich, außer dass der Zeiger flexibler und …
Warum hat der C-Meister Dennis Ritchie Zeiger in C eingeführt? Und warum haben die anderen Programmiersprachen wie VB.NET oder Java oder C # sie beseitigt? Ich habe einige Punkte in Google gefunden und möchte auch Ihre Kommentare anhören. Warum eliminieren sie Zeigerkonzepte in modernen Sprachen? Die Leute sagen, C ist …
Hatten Sie in Ihrem eigenen Studium (allein oder für eine Klasse) einen "ah ha" -Moment, in dem Sie die Hinweise wirklich verstanden haben? Haben Sie eine Erklärung, die Sie für Anfängerprogrammierer verwenden, die besonders effektiv zu sein scheint? Wenn zum Beispiel Anfänger zum ersten Mal auf Zeiger in C stoßen, …
Nun, ich verstehe im Grunde, wie man Zeiger benutzt, aber nicht, wie man sie am besten benutzt, um besser zu programmieren. Was sind gute Projekte oder Probleme, die mit der Verwendung von Zeigern gelöst werden müssen, damit ich sie besser verstehen kann?
Ich habe irgendwo gelesen, dass bei der Verwendung von C ++ empfohlen wird, keine Zeiger zu verwenden. Warum sind Zeiger eine so schlechte Idee, wenn Sie C ++ verwenden. Was ist die bessere Alternative und Vorgehensweise in C ++ für C-Programmierer, die an die Verwendung von Zeigern gewöhnt sind?
Kann mir jemand im Detail erklären, wie genau die virtuelle Tabelle funktioniert und welche Zeiger beim Aufruf von virtuellen Funktionen zugeordnet sind. Wenn sie tatsächlich langsamer sind, können Sie dann anzeigen, dass die Ausführung der virtuellen Funktion mehr Zeit in Anspruch nimmt als normale Klassenmethoden? Es ist leicht, den Überblick …
Es gibt viele Zeiger in C ++, aber um ehrlich zu sein, verwende ich in der C ++ - Programmierung (speziell mit dem Qt Framework) in 5 Jahren nur den alten rohen Zeiger: SomeKindOfObject *someKindOfObject = new SomeKindOfObject(); Ich weiß, dass es viele andere "kluge" Hinweise gibt: // shared pointer: …
Das ist ein bisschen "ein Megabyte sollte für jeden reichen", aber ... Ein flacher 64-Bit-Adressraum ermöglicht bis zu 4,3 Milliarden Mal mehr Speicherplatz als ein 32-Bit-Adressraum. Das sind 17.179.869.184 GiB. Offensichtlich war der Übergang von 8 auf 16 Bit ziemlich schnell (ich betrachte die Dinge auf eine jugendliche Art und …
Ich weiß, dass Zeiger Adressen enthalten. Ich weiß, dass Zeigertypen "allgemein" bekannt sind, basierend auf dem "Typ" der Daten, auf die sie zeigen. Zeiger sind jedoch weiterhin Variablen, und die Adressen, die sie enthalten, müssen einen "Datentyp" haben. Nach meinen Informationen sind die Adressen im hexadezimalen Format. Aber ich weiß …
Was ist Ihre Lieblingsmethode, um einen Zeiger zu deklarieren? int* i; oder int *i; oder int * i; oder int*i; Bitte erklären Sie warum. Siehe auch: http://www.stroustrup.com/bs_faq2.html#whitespace
In Sprachen wie C und C ++ benötigen wir unter Verwendung von Zeigern auf Variablen einen weiteren Speicherort, um diese Adresse zu speichern. Ist das nicht ein Gedächtnisaufwand? Wie wird das kompensiert? Werden Zeiger in zeitkritischen Anwendungen mit geringem Arbeitsspeicher verwendet?
Nach dem Kompilieren dieses Codes auf meinem Computer ist mir etwas Merkwürdiges aufgefallen: #include <stdio.h> int main() { printf("Hello, World!\n"); int a,b,c,d; int e,f,g; long int h; printf("The addresses are:\n %0x \n %0x \n %0x \n %0x \n %0x \n %0x \n %0x \n %0x", &a,&b,&c,&d,&e,&f,&g,&h); return 0; } Das …
In C ++ ermöglicht ein Referenzargument für eine Funktion der Funktion, die Referenz auf etwas anderes zu verweisen: int replacement = 23; void changeNumberReference(int& reference) { reference = replacement; } int main() { int i = 1; std::cout << "i=" << i << "\n"; // i = 1; changeNumberReference(i); std::cout …
Ich habe gerade erst angefangen, C ++ zu lernen, und wie die meisten Leute (nach dem, was ich gelesen habe) habe ich mit Zeigern zu kämpfen. Nicht im herkömmlichen Sinne verstehe ich, was sie sind und warum sie verwendet werden und wie sie nützlich sein können. Ich kann jedoch nicht …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.