C,C++中的指针

kun*_*l18 2 c pointers

这两个是等价的吗?

int a=10;
int *p=a; 

AND

int a=10;
int *p;
p=&a;
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,p是否保留a的地址!?

phs*_*sym 5

在第一种情况下,将值a复制到p(存储地址),因此p指向地址10.

在第二种情况下,p指向地址a.

还有第三种情况:

int a = 10;
int *p = malloc(sizeof(int));
*p = 10;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,值a被复制到指向的地址p(保留malloc())