string * sptemp = (string *) 0x000353E0;
这段代码究竟想说什么?
我知道在左侧我们定义了一个字符串指针,但我无法理解正确的部分。
答案 0 :(得分:4)
string * sptemp = (string *) 0x000353E0;
这段代码究竟想说什么?
它说,将位于地址0x000353E0
的数据视为拥有string
并将地址分配给变量sptemp
。之后可以通过指针变量sptemp
访问数据。
答案 1 :(得分:4)
这意味着获取一个数值,将其转换为具有该值的指针作为其指向的地址,然后使用该值初始化变量sptemp
。
如果该地址的内存包含有效的string
对象,则可以使用指针访问它。如果没有,尝试这样做会产生不确定的行为。
答案 2 :(得分:0)
这些评论大多是正确的,但并非完全如此。我们实际上并不知道字符串是std :: string。可能是该字符串是一些内存映射硬件,其OP嵌入式SBC上的地址由硬件0x000353E0定义。在这种情况下,这是完全合理的,人们一直在做什么。指针" string * sptemp"设置为指向硬件接口。
但这可能是胡说八道。