具有相同数据的两个C空指针是否是不同的存储对象?

时间:2018-10-16 06:05:54

标签: c pointers

例如:

void *p1 = someStringPointer;
void *p2 = p1;

尽管它们是两个唯一的指针,但鉴于它们都指向相同的值,它们仍然是不同的内存对象吗?

2 个答案:

答案 0 :(得分:6)

如果打印p1p2的地址

printf("%p\n", (void *) &p1);
printf("%p\n", (void *) &p2);

它们具有不同的地址,所以是的,它们是不同的内存对象。

答案 1 :(得分:4)

p1p2位于内存的两个不同地址(在本例中为堆栈区域),但它们包含相同的值,其值为someStringPointer