【发布时间】:2016-04-13 13:01:33
【问题描述】:
所以基本上我希望能够按照这些思路做一些事情
char *test1 = "hey";
int test2 = (int)test1;
char *test3 = (char*) &test2;
printf("%s", test3);
// have the output as hey
这甚至可能吗?我知道这不能正常工作,但我只想知道是否有工作方法。是的,我想使用 char 指针和整数,所以不,我不想使用字符串
【问题讨论】:
-
请注意,
char *test1 = "hey";不应编译。一些编译器具有允许这样做的扩展,但您应该使用char test1[] = "hey";或const char* test1 = "hey";或更好的是std::string test = "hey"; -
什么甚至可能吗?您已经编写了一些代码,这些代码执行了一些不确定的强制转换,这些强制转换可能会或可能不会做一些明智的事情。你想完成什么?
-
出于兴趣,为什么要这样做?
-
@JohnnyMopp - 虽然这很重要,但这并不是这里真正发生的事情。还有另一层间接,用
(char*)&test2初始化test3。注意&——它使用test2的地址。