我们如何在不使用指针的情况下存储变量的地址?
#include<stdio.h>
int main ()
{
double sum;
double x= ∑
printf("\n %lf",x);
}
您做得差不多。但是您将其存储在double
中,根据实现的不同,变量的内存地址可以是4个字节或8个字节。不过,您应该始终将其转换为更广泛的类型。现在,将其存储在double
中可能会导致信息丢失。
您需要使用足够宽的数据类型。您可以使用unsigned long long
,但是为了实现跨平台兼容性,我建议改用uint64_t
中的stdint.h
。
#include<stdio.h>
#include<stdint.h>
int main()
{
double sum;
uint64_t x = (uint64_t) ∑
printf("%llx\n", x);
}
这将确保您使用无符号的64位(8字节)变量,因此不会丢失信息。
也使用%x
格式说明符打印以获取十六进制格式的输出。
但是请注意,这仅适用于打印地址和地址。这确实没有任何实际目的。