C语言的内存布局 1.堆和栈 堆一般是由程序员指定分配的内存空间,其内地址由小到大分配。而栈是由系统自动分配,其内地址由大到小分配。 2.一道题 #include <stdio.h> int main(void) { char a = 0, b = 0; int *p = (int *)&b; *p = 258; printf("%d %d\n", a, b); return 0; } 请问这里为什么变量 a 和 b 的值会变成 1 和 2 呢? 解答: 另外有空可以看看大端和小端是什么意思。