Als «pointers» getaggte Fragen

78
Referenztyp in C #

Betrachten Sie diesen Code: public class Program { private static void Main(string[] args) { var person1 = new Person { Name = "Test" }; Console.WriteLine(person1.Name); Person person2 = person1; person2.Name = "Shahrooz"; Console.WriteLine(person1.Name); //Output: Shahrooz person2 = null;...

75
Warum nicht Zeiger für alles in C ++ verwenden?

Angenommen, ich definiere eine Klasse: class Pixel { public: Pixel(){ x=0; y=0;}; int x; int y; } Dann schreiben Sie einen Code damit. Warum sollte ich Folgendes tun? Pixel p; p.x = 2; p.y = 5; Aus einer Java-Welt kommend schreibe ich immer: Pixel* p = new Pixel(); p->x =...

75
Python-Funktionszeiger

Ich habe einen Funktionsnamen in einer Variablen wie dieser gespeichert: myvar = 'mypackage.mymodule.myfunction' und ich möchte jetzt meine Funktion so nennen myvar(parameter1, parameter2) Was ist der einfachste Weg, um dies zu erreichen?

75
Wann werden Zeiger in C # /. NET verwendet?

Ich weiß, dass C # dem Programmierer die Möglichkeit gibt, auf Zeiger in einem unsicheren Kontext zuzugreifen und diese zu verwenden. Aber wann wird das gebraucht? Unter welchen Umständen ist die Verwendung von Zeigern unvermeidlich? Ist es nur aus Leistungsgründen? Warum stellt C # diese...

75
RAII gegen Garbage Collector

Ich habe kürzlich einen großartigen Vortrag von Herb Sutter über "Leak Free C ++ ..." auf der CppCon 2016 gesehen, in dem er über die Verwendung intelligenter Zeiger zur Implementierung von RAII (Ressourcenerfassung ist Initialisierung) - Konzepte und deren Lösung der meisten Probleme mit...

74
Überprüfen, ob einem Zeiger Speicher zugewiesen ist oder nicht

Können wir überprüfen, ob ein an eine Funktion übergebener Zeiger in C mit Speicher belegt ist oder nicht? Ich habe meine eigene Funktion in C geschrieben, die einen Zeichenzeiger - buf [Zeiger auf einen Puffer] und size - buf_siz [Puffergröße] akzeptiert . Tatsächlich muss der Benutzer vor dem...

74
Objekte in Java duplizieren

Ich habe gelernt, dass beim Ändern einer Variablen in Java die Variable, auf der sie basiert, nicht geändert wird int a = new Integer(5); int b = a; b = b + b; System.out.println(a); // 5 as expected System.out.println(b); // 10 as expected Ähnliches habe ich für Objekte angenommen. Betrachten Sie...

74
Zeiger auf Zeiger vs. normale Zeiger

Der Zweck eines Zeigers besteht darin, die Adresse einer bestimmten Variablen zu speichern. Dann sollte die Speicherstruktur des folgenden Codes folgendermaßen aussehen: int a = 5; int *b = &a; ...... Speicheradresse ...... Wert a ... 0x000002 ................... 5 b ... 0x000010...

72
Wie benutze ich einen Iterator?

Ich versuche den Abstand zwischen zwei Punkten zu berechnen. Die zwei Punkte, die ich in einem Vektor in C ++ gespeichert habe: (0,0) und (1,1). Ich soll Ergebnisse erzielen als 0 1.4 1.4 0 Aber das tatsächliche Ergebnis, das ich bekam, ist 0 1 -1 0 Ich denke, es stimmt etwas nicht mit...

70
Komplexe C-Deklaration

Ich habe gerade einen Code im Internet durchgesehen und Folgendes gefunden: float * (*(*foo())[SIZE][SIZE])() Wie lese ich diese Erklärung? Gibt es bestimmte Regeln zum Lesen derart komplexer Erklärungen?

70
Was sind die Regeln für das Umsetzen von Zeigern in C?

K & R geht nicht darüber hinweg, aber sie benutzen es. Ich habe versucht zu sehen, wie es funktionieren würde, indem ich ein Beispielprogramm geschrieben habe, aber es lief nicht so gut: #include <stdio.h> int bleh (int *); int main(){ char c = '5'; char *d = &c; bleh((int *)d);...