test(int& n){略} 比test(int n){略} 這個效率一樣,但是一般int這些并非類或者結(jié)構(gòu)型
變量是不用引用傳址的,除非你要修改傳過來的n在原函數(shù)中的值.因為引用傳址傳的是一個指針,系統(tǒng)中是一個push一個pop兩個指令,int也是兩這個指令,效率相同.
但是結(jié)構(gòu)或者類若不是引用傳址,系統(tǒng)會先在棧里分配一個
臨時變量出來,然后在進行調(diào)用類的構(gòu)造函數(shù),再把成員
變量進行賦值,等該函數(shù)返回后還要進行調(diào)用析構(gòu)函數(shù),這樣就會使本來很簡單的工作出現(xiàn)很多無用功,導(dǎo)致程序效率下降.
從匯編也可以看出是否產(chǎn)生了臨時變量