我使用struct在C中创建了一个节点:
struct node{
int data;
struct node* left;
struct node* right;
}
Run Code Online (Sandbox Code Playgroud)
现在我使用以下代码计算节点的大小
printf("%d", size of(struct node));
Run Code Online (Sandbox Code Playgroud)
输出是6,我使用的是Turbo c ++编译器.
请清楚我为什么节点的大小是6?
"经典"Turbo C++的目标是16位DOS(后来的版本支持16位Windows),所以接近指针并且int每个都是2个字节; 对于它们都是相同的,对齐不需要填充,并且总大小相当于其元素的简单总和(2 + 2 + 2 = 6字节).
这样的指针指向其他node结构的事实不会影响它们的大小(为什么要这样?).