Im folgenden Programm zeigt ptr
auf nicht initialisiert Variable x
. Vor dem Drucken ptr
, habe ich 10
zu ptr
zugewiesen und es ausdrucken.Zeiger zeigt auf nicht initialisierte Variable
#include <stdio.h>
int main()
{
int *ptr;
int x;
ptr = &x;
*ptr = 10;
printf(" x = %d\n", x);
printf(" *ptr = %d\n", *ptr);
}
Sowohl ptr
und x
Druck der richtige Wert. Aber ich habe Zweifel, Ist es definiert Verhalten?
Bitte darüber lesen. Warum denkst du, es wäre definiert oder undefiniert? Wo sind Ihre Forschungsanstrengungen? Was hast du gefunden, was du nicht verstanden hast? Hinzufügen dieser macht es eine gute Frage, nichts für ungut. –
Sie können nur potenziell schlecht definiertes Verhalten aufrufen, wenn Sie _ auf den Wert einer Variablen zugreifen, die nicht initialisiert wurde. – Lundin
Könnten Sie bitte erklären, was Sie mit "Bevor dereferenzierte' ptr' gemeint habe, habe ich '10' zu' ptr' zugewiesen und es dereferenziert. " ? Zuweisen von '10' zu' * ptr' (nicht 'ptr' ist dereferenzierend. Sie dereferenzieren es, bevor Sie es dereferenzieren? – Gerhardh