所以基本上我希望能够按照这些思路做点事情
char *test1 = "hey";
int test2 = (int)test1;
char *test3 = (char*) &test2;
printf("%s", test3);
// have the output as hey
这有可能吗?我知道这不能正常工作,但我只想知道是否有一种可行的方法。是的,我想使用char指针和整数,所以不,我不想使用字符串
最佳答案
char *test1 = "hey";
int test2 = (int)test1;
char *test3 = (char*) test2; // Note that the ampersand has been removed
printf("%s", test3);
如果
int
和指针的大小相同(通常是,但是不能保证),则可能可行。但是,当您分配
test3
时,您使用的是test2的地址,而不是其值,这是我认为您真正想要做的。关于c++ - (c++)将int强制转换为char指针(int是int形式的字符),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36599235/