Странный указатель адреса для отдельного члена данных структуры

Сегодня я наблюдаю странное поведение, код выглядит следующим образом:

The 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;
}

The Question : 1.) Единственный вопрос, который у меня есть, это почемуcout theAddress для приведенного выше кода выйдет какое-то странное значение?

2.) Почему я все еще могу изменить значение участникаc разыменовывая указатель, который имеет странный адрес?

Thank you.

Ответы на вопрос(2)

Ваш ответ на вопрос