一、定義
引用就是給變數起別名
int a = 10;記憶體中表示為
此時修改 b = 20;
cout << a << endl;a應該為20;
#include
using namespace std;
intmain()
輸出結果![](https://pic.w3help.cc/291/c6bd59ec640233e0b50d38a15fb94.jpeg)
1.引用必須要初始化
int &b; //錯誤的,未初始化。2.引用一旦初始化就不能更改了。
int a = 10;int &b = a;
int &b =c; //錯誤的,不能再更改了
1.引用傳遞實現交換函式,**示例
輸出結果#include
using namespace std;
void
swap
(int
&p,int
&q)int
main()
注意事項
1.不能返回區域性變數的引用
示例**
輸出結果在這裡插入**片#include
using namespace std;
int&
test()
intmain()
a是區域性變數,返回後就釋放,我們無權再去操縱。
2.函式的呼叫可以作為左值
輸出結果#include
using namespace std;
int&
test()
intmain()
test()返回的是a
test() = 1000;等於說是把1000賦值給a
b又是a的別名
因此b等於1000
本質:引用的本質在c++內部是乙個指標常量。
1、指標常量:指標指向的位址不能改變,但是指標指向的位址的值可以改變。
(1)改變指標指向的位址的值示例
結果正確#include
intmain()
(2)改變指標指向的位址示例
結果錯誤#include
intmain()
2、引用不能更改,引用的值可以更改的原因。
int a = 10;作用:常量引用主要用來修飾形參,防止誤操作int &b = a;
自動轉換為 int * const b = &a;
指標常量是指標指向的位址不能修改,這也就是為什麼引用不能更改的原因。
b = 20;
自動轉換為:*b = 20;
void showvalue(const int &val);注這樣 val就不會被改變了
int &a = 10; //做法錯誤,引用必須引一塊合法的記憶體const int &a = 10; //加上const之後,編譯器將**修改為 int temp = 10;const int &a = temp;temp是臨時變數
C 學習之引用
include using namespace std void main b 14 printf a d b d n a,b 14 14 system pause 輸出 a 12 a 14 b 14 請按任意鍵繼續.輸出 11 11 請按任意鍵繼續.實現兩個數字之間的交換 void swap in...
C 學習筆記之 引用
先宣告一下,這裡的內容大多是 c 程式設計思想 中的內容,我最近在學習c 覺得裡面的很多話不錯,另外例子也都自己實驗了一番,有些現象很有趣,希望與大家分享。引用 reference 就像能自動地被編譯器間接引用的常量型指標。常量型指標的含義就是常量修飾指標,即指的地方不變,但所指地方的內容可以改變。...
C 學習之引用特性
引用即給變數賦予乙個別名,就像外號一樣,我叫李曉明,外號小明,實際都是指李曉明這個人。includeusing namespace std int main 程式的輸出記過就是10,通過b的引用,將a的值改掉了。結構體中的引用,includeusing namespace std typedef s...