c ++字符串和指针混淆

时间:2015-05-26 15:08:18

标签: c++ pointers

string * sptemp = (string *) 0x000353E0;

这段代码究竟想说什么?

我知道在左侧我们定义了一个字符串指针,但我无法理解正确的部分。

3 个答案:

答案 0 :(得分:4)

string * sptemp = (string *) 0x000353E0;
     

这段代码究竟想说什么?

它说,将位于地址0x000353E0的数据视为拥有string并将地址分配给变量sptemp。之后可以通过指针变量sptemp访问数据。

答案 1 :(得分:4)

这意味着获取一个数值,将其转换为具有该值的指针作为其指向的地址,然后使用该值初始化变量sptemp

如果该地址的内存包含有效的string对象,则可以使用指针访问它。如果没有,尝试这样做会产生不确定的行为。

答案 2 :(得分:0)

这些评论大多是正确的,但并非完全如此。我们实际上并不知道字符串是std :: string。可能是该字符串是一些内存映射硬件,其OP嵌入式SBC上的地址由硬件0x000353E0定义。在这种情况下,这是完全合理的,人们一直在做什么。指针" string * sptemp"设置为指向硬件接口。

但这可能是胡说八道。