Ja, Sie können Zeiger auf einen Wert bei der Deklaration initialisieren, jedoch nicht:
%Vor%& amp; ist die -Adresse des -Operators und Sie können das nicht auf eine Konstante anwenden (obwohl, wenn Sie könnten, wäre das interessant). Versuchen Sie es mit einer anderen Variablen:
%Vor%oder Typ-Casting:
%Vor%In der Frage sind mir zwei Dinge nicht klar. Möchten Sie den Zeiger auf einen bestimmten Wert (z. B. Adresse) festlegen oder möchten Sie den Zeiger auf eine bestimmte Variable zeigen?
Im letzteren Fall können Sie einfach den Adressoperator verwenden. Der Wert des Zeigers wird dann auf die Adresse von some_int_variable
gesetzt.
Hinweis : Was folgt, ist eine schlechte Änderung des Zeigerwertes von Hand. Wenn Sie nicht wissen, ob Sie das tun wollen, wollen Sie es nicht tun.
Im ersteren Fall (d. h. Einstellung auf eine bestimmte Adresse) können Sie nicht einfach
tun %Vor%Da der Compiler den int nicht übernimmt und ihn als Adresse interpretiert. Sie müssen dem Compiler sagen, dass er dies explizit tun sollte:
%Vor%Nun wird der Zeiger auf eine ganze Zahl (hoffentlich) bei Adresse 1000 verweisen. Beachten Sie, dass das Ergebnis eine Implementierung ist. Aber das ist die Semantik und das ist die Art, wie Sie dem Compiler davon erzählen.
Update : Das Komitee hat das seltsame Verhalten von reinterpret_cast<T*>(0)
korrigiert, das von einer Notiz vorgeschlagen wurde und für die ich zuvor einen Workaround bereitgestellt habe. Siehe hier .
Tags und Links c++ initialization pointers