C語言中參數入棧規則
/*************************
c語言棧低為高地址,棧頂為低地址。
函數參數的入棧順序為從右至左。
***************************/
關於棧:
首先必須明確一點也是非常重要的一點,棧是向下生長的,所謂向下生長是指從內存高地址--->低地址的路徑延伸,那麼就很明顯了,棧有棧底和棧頂,那麼棧頂的地址要比棧底低。對x86體係的CPU而言,
example:
void fun(int x, int y, int z){
printf("%d in address [%x]",x, &x);
printf("%d in address [%x]",y, &y);
printf("%d in address [%x]",z, &z);
}
int main()
{
fun(10, 20, 30);
return 0;
}
控製台輸出:
分析圖解:
#include <stdio.h> void main() { int num = 100; printf("%d, %d\n", num, ++num); //從左->右, 100, 101(正確) //從右->左,101, 101 getchar(); }
最後更新:2017-04-03 16:48:51