閱讀942 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go HDU 2222 AC自動機
  下一篇:go Linux網絡設置1——Linux網絡環境配置