日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++引用作为函数参数

發布時間:2025/4/5 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++引用作为函数参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在定義或聲明函數時,我們可以將函數的形參指定為引用的形式,這樣在調用函數時就會將實參和形參綁定在一起,讓它們都指代同一份數據。

如此一來,如果在函數體中修改了形參的數據,那么實參的數據也會被修改,從而擁有“在函數內部影響函數外部數據”的效果。
一個能夠展現按引用傳參的優勢的例子就是交換兩個數的值,請看下面的代碼:

#include <iostream> using namespace std; void swap1(int a, int b); void swap2(int *p1, int *p2); void swap3(int &r1, int &r2); int main() {int num1, num2;cout << "Input two integers: ";cin >> num1 >> num2;swap1(num1, num2);cout << num1 << " " << num2 << endl;cout << "Input two integers: ";cin >> num1 >> num2;swap2(&num1, &num2);cout << num1 << " " << num2 << endl;cout << "Input two integers: ";cin >> num1 >> num2;swap3(num1, num2);cout << num1 << " " << num2 << endl;return 0; } //直接傳遞參數內容 void swap1(int a, int b) {int temp = a;a = b;b = temp; } //傳遞指針 void swap2(int *p1, int *p2) {int temp = *p1;*p1 = *p2;*p2 = temp; } //按引用傳參 void swap3(int &r1, int &r2) {int temp = r1;r1 = r2;r2 = temp; } Input two integers: 12 45 12 45 Input two integers: 12 45 45 12 Input two integers: 12 45 45 12

本例演示了三種交換變量的值的方法:

1) swap1() 直接傳遞參數的內容,不能達到交換兩個數的值的目的。對于 swap1() 來說,a、b 是形參,是作用范圍僅限于函數內部的局部變量,它們有自己獨立的內存,和 num1、num2 指代的數據不一樣。調用函數時分別將 num1、num2 的值傳遞給 a、b,此后 num1、num2 和 a、b 再無任何關系,在 swap1() 內部修改 a、b 的值不會影響函數外部的 num1、num2,更不會改變 num1、num2 的值。
2) swap2() 傳遞的是指針,能夠達到交換兩個數的值的目的。調用函數時,分別將 num1、num2 的指針傳遞給 p1、p2,此后 p1、p2 指向 a、b 所代表的數據,在函數內部可以通過指針間接地修改 a、b 的值。我們在《C語言指針變量作為函數參數》中也對比過第 1)、2) 中方式的區別。
2) swap3() 是按引用傳遞,能夠達到交換兩個數的值的目的。調用函數時,分別將 r1、r2 綁定到 num1、num2 所指代的數據,此后 r1 和 num1、r2 和 num2 就都代表同一份數據了,通過 r1 修改數據后會影響 num1,通過 r2 修改數據后也會影響 num2。

從以上代碼的編寫中可以發現,按引用傳參在使用形式上比指針更加直觀。在以后的 C++ 編程中,我鼓勵讀者大量使用引用,它一般可以代替指針(當然指針在C++中也不可或缺),C++ 標準庫也是這樣做的。

C++引用作為函數返回值
引用除了可以作為函數形參,還可以作為函數返回值,請看下面的例子:

#include <iostream> using namespace std; int &plus10(int &r) {r += 10;return r; } int main() {int num1 = 10;int num2 = plus10(num1);cout << num1 << " " << num2 << endl;return 0; }

總結

以上是生活随笔為你收集整理的C++引用作为函数参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。