您好,登錄后才能下訂單哦!
這篇文章主要介紹“C++引用類型怎么使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“C++引用類型怎么使用”文章能幫助大家解決問題。
思考:如何在被調函數中修改主調函數中定義的變量的值?
先來看看C語言怎么實現:
#include <stdio.h> void modify(int* p) // 由于要接收整型變量的地址,所以p定義為整形指針變量 { (*p) = 5; // 因為p接收了main函數中i變量的地址,故此時的*p就是main函數中的變量i } int main() { int i = 10; // 在main函數中定義的整型變量i modify(&i); // 如果想要通過modify函數修改main函數中變量i的值,就只能發送變量i的地址 printf("%d\n", i); return 0; }
但在C++語言中,想要在被調函數中修改主調函數中定義的變量的值時,不需要將其地址傳輸給被調函數,直接傳輸變量即可,但需要注意的是,被調函數的形參類型必須為引用類型,否則就無法達到修改主調函數中變量的值的目的。以下面的程序為例:
#include <stdio.h> void modify(int& p) // 形參為引用類型 { p = 5; // 此時的p就是就是main中的i // 給p賦值相當于給main函數中的i賦值 } int main() { int i = 10; // 在main函數中定義的整型變量i modify(i); // 在C++程序中,只需要傳輸變量名即可在modify中修改i的值 // 但前提是,modify函數的形參必須是引用類型 printf("%d\n", i); return 0; }
此外,C++程序文件的后綴不同于C程序文件的后綴,在創建文件時,記得要將文件名后綴改為改為.cpp
。
在使用C++引用之前。首先要考慮的是,需不需要在被調函數中修改主調函數中變量的值?
如果需要修改則才需要將將被調函數的形參改為引用類型,如果不需要修改則不需要將被調函數的形參改為引用類型。
使用方法
先看要修改的變量是什么類型,要修改的變量是什么類型形參就先寫什么類型,例如:主調函數中要修改的變量為int
類型,則形參先寫類型就先寫int
;然后在剛寫的形參類型后加&
。
牛刀小試:使用C++引用在modify
函數中修改main
函數中的指針變量p
的值
#include <stdio.h> #include <malloc.h> void modify(int*& q) // 要修改的變量的類型為int *,則形參為int*& { q = (int *)malloc(sizeof(int)); // 此時的q就是main函數中的p // 給q賦值相當于給main函數中的p賦值 } int main() { int * p; modify(p); // 不需要傳輸地址,直接發送變量即可 return 0; }
上述程序用C語言實現如下:
#include <stdio.h> #include <malloc.h> void modify(int** q) // 由于要接收指針變量的地址,所以形參必須為二級指針 { *q = (int *)malloc(sizeof(int)); // 由于q接收了main函數中p的地址,則q就指向了p // 此時的*q就是main函數中的p變量,給*q賦值就是給p賦值 } int main() { int * p; modify(&p); // 要在modify函數中修改變量p的值,不管變量p是什么類型的變量,都只能通過傳輸p的地址來修改 return 0; }
關于“C++引用類型怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。