Seltsame Zeigeradresse für ein einzelnes Strukturdatenelement
Ich beobachte heute ein seltsames Verhalten. Der Code lautet wie folgt:
Der Code :#include <iostream>
struct text
{
char c;
};
int main(void)
{
text experim = {'b'};
char * Cptr = &(experim.c);
std::cout << "The Value \t: " << *Cptr << std::endl ;
std::cout << "The Address \t: " << Cptr << std::endl ; //Print weird stuff
std::cout << "\n\n";
*Cptr = 'z'; //Attempt to change the value
std::cout << "The New Value \t: " << *Cptr <<std::endl ;
std::cout << "The Address \t: " << Cptr << std::endl ; //Weird address again
return 0;
}
Die Frage :1.) Die einzige Frage die ich habe ist warumcout theAddress
für den obigen Code würde ein komischer Wert herauskommen?2.) Warum kann ich den Wert des Mitglieds noch ändern?c
durch den Zeiger dereferenncing die seltsame Adresse hat?
Vielen Dank.