学过汇编语言吗?如果学过的话就很好解释啦,不过也没事,其实你问的问题是涉及到C的底层工作机制的,C的底层就是汇编,我们举一个例子,pirntf("%d %d",a,b);这个函数的实现机制是什么呢?首先这个函数有三个参数,在执行此函数时,会将此函数的三个参数压入栈中(sp指针会一直指向栈顶元素的),那么函数就会对这些数据进行处理(因为就在栈中,很容易找到数据的位置,这些不是你做的,是编译器替你完成的),如果函数调用完成,则sp就会恢复到函数调用前的位置,也就是我们说的数据被释放啦,其他函数也是如此。比如:
int add(int x,int y)
{
int z;
z = x + y;
return z;
}