指针初始化:地址或值

davidev 4 c pointers

我对C语言中的指针初始化有疑问。

我知道这*ptr将给出该指针所指向的值。

ptr 会给你地址。

现在我得到以下语法:

int *ptr = (int *) malloc(sizeof(*ptr));

为什么*ptr用堆的地址而不是值初始化?malloc()返回一个地址吧?

不应该是:

int *ptr;
ptr = malloc(...);

David Schwar.. 5

在那一行,int *是类型。

int *ptr = (int *) malloc(sizeof(*ptr));

只是压缩成一行:

int *ptr;
ptr = (int *) malloc(sizeof(*ptr));