struct Data
{
int num;
struct *next, *prev;
};
typedef struct Data sData;
int main()
{
sData *head;
head = NULL;
printf("%lld %lld", head, &head);
return 0;
}
我试图更深入地了解结构指针及其内存分配。为什么打印的值不同?
最佳答案
查看您的代码,head
是一个变量。事实上,它是 SData
结构上的指针,这一事实对于理解没有什么用处:
- head返回变量
head
的值,这里为NULL。 - &head 返回变量
head
的地址,这里它取决于您的编译器和链接器配置。由于head
是局部变量,因此它可能是堆栈中某个位置的地址。
关于c - 结构体指针和内存位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50025596/