我們經常會用到將乙個引數在函式外部初始化,然後傳入函式,函式給引數賦值後,我們在函式外部使用這個值,最開始學習c++的時候我們就知道這需要將引數以引用的方式傳入,卻沒有更深層次的考慮這個方法的原因,為什麼傳指標就不行呢?其實這個問題更深層次的原因是形參也是乙個變數,我們在將乙個初始化好的引數傳入函式時其實是將引數賦給形參,比如
void copy1(char*data1)
void copy2(char*&data2)
int mian()
在copy1中,我們呼叫copy1時,實際上是將data的值賦給了data1,這樣data1和data這兩個指標同時指向了在主函式中申請的這段記憶體,這樣copy1執行時,data1指向新申請的記憶體,data仍舊指向原來的記憶體,當copy1執行完釋放之後,data就無法獲取這段記憶體。
所以如果想要獲取這段記憶體,就需要用引用來實現,引用其實就是別名的意思,他給data這個指標取了乙個別名叫做data2,這樣當copy2執行時實際上就是data指向了新申請的記憶體。
函式返回值和形參
函式包括了除函式名以外還有返回值和形參。這個形參包括了傳入引數和傳出引數 傳入引數 就是數值的傳遞。在函式中不會修改這個引數,不會修改呼叫這個函式的函式的值。例如void exchange int a,int b int main 輸出的結果是 a 4 b 5 這是傳參,僅僅是乙個數值的傳遞。在呼叫...
函式的引數 形參實參 及返回值
函式的引數有形參和實參 形參就是函式宣告時需要接受的引數,可以理解成暫時的佔位符,並無實際意義。實參就是呼叫函式時傳遞進函式的具體的實際資料,也就是給佔替代位符的的值。函式體內部的return語句 表示將資料返回給呼叫者。return後面即使有語句,也不會執行,也就是return後面不執行.retu...
C 中const修飾函式形參,函式,函式返回值
在程式設計中我們會經常呼叫函式,呼叫函式就會涉及引數的問題,那麼在形參列表中const形參與非const形參對傳遞過來的實參有什麼要求呢?先來看乙個簡單的例子 cpp view plain copy include include using namespace std void print str...