定义两个一样的字符串,为什么地址不一样的解释

定义两个一样的字符串,为什么地址不一样的解释

如图,直接取二者的地址是不一样的。
但实际上二者应该是共用常量数据区内的一片地址。但&s1、&s2取的是两个字符串对象的地址,对象的地址是在栈区的,所以肯定不一样。只是实际上整个程序内存中应该只有一个"hello",这是我的理解,有问题的话麻烦评论指出我的错误,谢谢。