当我们像 void *p 这样写 void 变量时;输出<<&p;输出<<p;所以它给了两个不同的地址,但为什么呢?
when we write void variable like void *p ; cout<<&p; cout<<p; so it give two different address but why?
C++输出给两个不同的地址
但是为什么编译器给出两个地址而不是我只写一个变量
void *p ;
cout<<&p<<p;
void *p ;
是未初始化的指针。所以你将在指针内部拥有实际的垃圾。当您执行 &p
时,您 return 正在访问指针 p
的地址。这就是为什么它们都 return 不同的值。
p
是一个指针,它指向内存中的不同位置,您可以使用 *p
访问该位置。
但是指针本身存储在某个地方,所以 &p
returns 指针本身的地址。
C++输出给两个不同的地址 但是为什么编译器给出两个地址而不是我只写一个变量
void *p ;
cout<<&p<<p;
void *p ;
是未初始化的指针。所以你将在指针内部拥有实际的垃圾。当您执行 &p
时,您 return 正在访问指针 p
的地址。这就是为什么它们都 return 不同的值。
p
是一个指针,它指向内存中的不同位置,您可以使用 *p
访问该位置。
但是指针本身存储在某个地方,所以 &p
returns 指针本身的地址。