编译器将局部变量存储在栈(stack)中。栈是一种内存数据结构,遵循先进后出的原则。当函数被调用时,栈会分配一段内存空间来存储函数的局部变量,当函数执行完毕后,栈会自动释放这段内存空间。
示例代码:
#include
int add(int a, int b) {
int result = a + b;
return result;
}
int main() {
int x = 3;
int y = 4;
int sum = add(x, y);
printf("The sum of %d and %d is %d\n", x, y, sum);
return 0;
}
在上面的示例代码中,函数add
中的局部变量result
会被存储在调用add
函数时分配的栈内存中。在main
函数中调用add
函数时,x
和y
也会被存储在栈内存中,而sum
则会被存储在主函数的堆(heap)中。