Als «pointers» getaggte Fragen

Datentyp, der auf einen anderen im Speicher gespeicherten Wert "zeigt". Eine Zeigervariable enthält eine Speicheradresse einer anderen Entität (Variable oder Funktion oder andere Entität). Dieses Tag sollte für Fragen verwendet werden, bei denen Zeiger und keine Referenzen verwendet werden. Die am häufigsten verwendeten Programmiersprachen mit Zeigern sind C, C ++, Go und Assemblersprachen. Verwenden Sie ein bestimmtes Sprach-Tag. Andere hilfreiche Tags sind Methode, Funktion, Struktur usw., die die Verwendung von Zeigern beschreiben.

12
Zeiger vs. Referenz
Was wäre besser, wenn Sie einer Funktion die ursprüngliche Variable geben, mit der sie arbeiten soll: unsigned long x = 4; void func1(unsigned long& val) { val = 5; } func1(x); oder: void func2(unsigned long* val) { *val = 5; } func2(&x); IOW: Gibt es einen Grund, einen über den …



7
size_t vs. uintptr_t
Der C-Standard garantiert, dass dieser size_tTyp jeden Array-Index enthalten kann. Dies bedeutet, dass logischerweise size_tjeder Zeigertyp enthalten sein sollte. Ich habe auf einigen Websites, die ich auf den Googles gefunden habe, gelesen, dass dies legal ist und / oder immer funktionieren sollte: void *v = malloc(10); size_t s = (size_t) …
246 c  pointers  size-t 

14
Zeiger auf Klassendatenelement ":: *"
Ich bin auf dieses seltsame Code-Snippet gestoßen, das sich gut kompilieren lässt: class Car { public: int speed; }; int main() { int Car::*pSpeed = &Car::speed; return 0; } Warum hat C ++ diesen Zeiger auf ein nicht statisches Datenelement einer Klasse? Was nützt dieser seltsame Zeiger in echtem Code?
242 c++  class  pointers  c++-faq 


4
Welche Art von Zeiger verwende ich wann?
Ok, das letzte Mal, als ich C ++ für std::auto_ptrmeinen Lebensunterhalt schrieb, war alles, was die Standardbibliothek zur Verfügung hatte, und boost::shared_ptrwar der letzte Schrei. Ich habe mich nie wirklich mit den anderen Boosts für intelligente Zeigertypen befasst. Ich verstehe, dass C ++ 11 jetzt einige der Typen bietet, die …

7
Gibt es Vorteile beim Übergeben eines Zeigers gegenüber dem Übergeben eines Verweises in C ++?
Welche Vorteile bietet das Übergeben eines Zeigers gegenüber dem Übergeben eines Verweises in C ++? In letzter Zeit habe ich eine Reihe von Beispielen gesehen, bei denen die Übergabe von Funktionsargumenten durch Zeiger anstelle der Übergabe als Referenz ausgewählt wurde. Gibt es Vorteile dabei? Beispiel: func(SPRITE *x); mit einem Anruf …


17
Array in einer Funktion zurückgeben
Ich habe ein Array int arr[5], das an eine Funktion übergeben wird fillarr(int arr[]): int fillarr(int arr[]) { for(...); return arr; } Wie kann ich dieses Array zurückgeben? Wie werde ich es verwenden, sagen wir, ich habe einen Zeiger zurückgegeben, wie werde ich darauf zugreifen?

25
Was genau ist ein C-Zeiger, wenn nicht eine Speicheradresse?
In einer seriösen Quelle über C werden nach Erörterung des &Bedieners die folgenden Informationen gegeben : ... Es ist ein bisschen bedauerlich, dass die Terminologie [Adresse von] erhalten bleibt, weil sie diejenigen verwirrt, die nicht wissen, worum es bei Adressen geht, und diejenigen irreführt, die dies tun: Das Nachdenken über …

17
Übergabe als Referenz in C.
Wenn C die Übergabe einer Variablen als Referenz nicht unterstützt, warum funktioniert dies? #include <stdio.h> void f(int *j) { (*j)++; } int main() { int i = 20; int *p = &i; f(p); printf("i = %d\n", i); return 0; } Ausgabe: $ gcc -std=c99 test.c $ a.exe i = 21




Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.