Différence entre const char * et const char *

Quelqu'un pourrait-il expliquer la différence dans la façon dont les 2 extraits de code sont traitées ci-dessous? Ils ont certainement de la compilation de différentes assemblée de code, mais je vais essayer de comprendre comment le code peut agir différemment. Je comprends que les littéraux de chaîne sont jetés dans la mémoire en lecture seule et sont effectivement statique, mais comment cela diffère de la statique explicite ci-dessous?

struct Obj1
{
    void Foo()
    {
        const char* str( "hello" );
    }
};

et

struct Obj2
{
    void Foo()
    {
        static const char* str( "hello" );
    }
};

source d'informationauteur Will MacDonagh