我试图了解C的内存模型,并编写了以下代码:
int main(int argc, char** argv){
static int addr0 = 2;
static int addr1;
printf("- addr0: %p\n", & addr0);
printf("- addr1: %p\n",&addr1);
return 0;
}
输出为:
- addr0: 0x55e8f4094010
- addr1: 0x55e8f4094018
我不明白为什么这些变量之间的差异是8而不是4,因为它们是按顺序分配的。 另外,它们在哪里分配? .bss?数据?