Als «pointers» getaggte Fragen

326
Zeiger gegen Werte in Parametern und Rückgabewerte

In Go gibt es verschiedene Möglichkeiten, einen structWert oder einen Slice davon zurückzugeben. Für einzelne habe ich gesehen: type MyStruct struct { Val int } func myfunc() MyStruct { return MyStruct{Val: 1} } func myfunc() *MyStruct { return &MyStruct{} } func myfunc(s *MyStruct) {...

309
Was ist der Unterschied zwischen NULL, '\ 0' und 0?

In C scheint es Unterschiede zwischen verschiedenen Werten von Null zu geben - NULL , NULund 0. Ich weiß, dass das ASCII-Zeichen zu '0'ausgewertet wird48 oder0x30 . Der NULLZeiger ist normalerweise definiert als: #define NULL 0 Oder #define NULL (void *)0 Hinzu kommt der NULCharakter'\0' der...

264
Warum existiert der Pfeiloperator (->) in C?

Der dot ( .) -Operator wird verwendet, um auf ein Mitglied einer Struktur zuzugreifen, während der Pfeiloperator ( ->) in C verwendet wird, um auf ein Mitglied einer Struktur zuzugreifen, auf das der betreffende Zeiger verweist. Der Zeiger selbst hat keine Mitglieder, auf die mit dem...

257
Verwendung des Pfeiloperators (->) in C.

Ich lese ein Buch mit dem Titel "Teach Yourself C in 21 Days" (ich habe bereits Java und C # gelernt, daher bewege ich mich viel schneller). Ich habe das Kapitel über Zeiger gelesen und der Operator-> (Pfeil) wurde ohne Erklärung angezeigt. Ich denke, dass es verwendet wird, um Mitglieder und...

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

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

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