typedef struct node
{
int data;
struct node* next;
}Node;
指针长度与指向的数据无关,与系统有关,在 32 位系统上是 4 个字节,在 64 位系统上是 8 个字节。在 linux86-64 系统上,指针 next 占 8 个字节。整形 data 占 4 个字节,系统为了对齐,会自动将 data 扩充到 8 个字节,因此结构体一共 16 个字节。
int main()
{
Node n;
printf("%d\n", sizeof(n.data));
printf("%d\n", sizeof(n.next));
printf("%d\n", sizeof(n));
}
输出结果
4
8
16