C++函數形參表調用順序

#include <iostream>
using namespace std;

void print(int i, int j)
{
	cout<<i<<endl;
	cout<<j<<endl;
}

void main()
{
	int i=0;
	print(i,i++);

}

觀察上述代碼,常規思維下,print()的輸出應該爲0和0,但是實際輸出爲1,0



在VS2010中,對形參的調用是從右到左調用,並壓入棧中,也就是先將i++壓入棧底,然後將i壓入棧,這樣i的值由0變爲了1.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章