2012-01-08 124 views

回答

4

使用该值将解释res指向的地址(反正只是一个数字)。

它会在大多数时间工作,但它不完全好(很大程度上取决于你如何使用它)。例如,如果你只是想打印出来,你可以用

printf("%p", res); 

作为一个经验法则脱身:治疗任何投以怀疑的眼光

+0

假设'long'是2个单词,'unsigned char *'是1个单词。在哪里需要剩下的部分?调用堆栈? – amit 2012-01-08 08:47:52

+1

如果源类型是有符号的,其余位将为1,否则为0。 – 2012-01-08 08:51:17

+0

是什么意思?你能给我举个例子吗? – mary 2012-01-08 09:08:40

2

分配的内存不被读取,只是将指针指向内存很长一段时间。

0

这并不直接回答你的问题,但是是一个有用的位信息,或多或少与你的siutation相关。

从指针类型转换为整数类型是实现定义的(这意味着实现决定将指针转换为整数时会发生什么)。支持某种类型的可逆转换的C99实现还应提供<stdint.h>专用于将指针转换为整数的两种类型,即uintptr_tintptr_t。如果您的实现提供了这两种类型,那么您可以安全地将指针转换为这些类型并返回到原始指针类型。

由于这些类型是实现定义的,因此您需要检查实现文档以了解底层类型。