您好,登錄后才能下訂單哦!
這篇文章主要介紹了C++怎么改變參數值的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇C++怎么改變參數值文章都會有所收獲,下面我們一起來看看吧。
1、通常我們將參數(包括普通變量、指針變量和引用變量)傳遞給函數使用,有的時候希望在函數中改變傳入這個參數的值,有的時候不希望改變傳入參數的值;
2、函數的參數傳入通常有三種方式:按值傳遞、按地址傳遞、按引用傳遞;
3.1 按值傳遞:該方式不改變傳入參數的值;
3.3 按地址傳遞:該方式改變傳入參數的值;
3.3 按引用傳遞:該方式改變傳入參數的值;
為便于理解,下面的示例程序將三種方式都進行了演示:
具體的原理說明參見下圖:
說明1:如上圖中所示,程序開始首先執行main函數,當執行到fun1函數時,在棧中開辟一個新的棧幀(圖中藍色fun1塊),在fun1塊中開辟了一塊空間存放p,p的值復制了main中p的值,由于是在棧上開辟的空間,當fun1函數執行完成后這塊空間被釋放,由于p只是一個臨時變量且不指向任何其他的內存位置,故不會改變main函數中的p。
說明2:當程序執行到fun2函數時,會在棧中又開辟一塊棧幀(圖中紫色fun2塊),在fun2塊中開辟了一塊空間存放p,p的值是main中p的地址,因此*p指向main中的參數p,在fun2函數中對*p的更改本質上都是在更改main中p的值,當fun2函數執行完畢后,雖然p被釋放了,但main函數中的p已經被更改過了。
說明3:按引用傳遞本質跟指針相同,不再過多解釋。
關于“C++怎么改變參數值”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“C++怎么改變參數值”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。