一、普通引用
1、概念說明
之前的 【C++】C++ 引用詳解 ① ~ ⑦ 博客中 , 講解的都是 普通引用 , 也就是 將 普通變量 賦值給 引用 , 過程如下 : 先定義 普通變量 a , 然后定義 已存在變量 a 的引用 b ;
這里的 引用 b 就是 普通引用 ;
// 定義變量 a
int a = 10;
// 定義變量 a 的引用 b
int& b = a;
2、代碼示例 - 普通引用
普通引用代碼示例 :
// 包含 C++ 頭文件
#include "iostream"
// 使用 std 標(biāo)準(zhǔn)命名空間
// 該命名空間中 , 定義了很多標(biāo)準(zhǔn)定義
using namespace std;
// 導(dǎo)入 C 頭文件
#include <stdio.h>
int main()
{
// I . 普通引用
// 定義變量 a
int a = 10;
// 定義變量 a 的 普通引用 b
int& b = a;
// 打印 普通引用 b 的值
printf("b = %d\n", b);
// 修改普通引用 b 的值
b = 20;
// 打印 普通引用 b 的值
printf("b = %d\n", b);
// 控制臺(tái)暫停 , 按任意鍵繼續(xù)向后執(zhí)行
system("pause");
return 0;
}
執(zhí)行結(jié)果 :
b = 10
b = 20
Press any key to continue . . .
二、常量引用
1、常量引用引入
與 變量引用 相對(duì)的就是 常量引用 ;
- 通過 普通引用 , 可以修改 變量的值 ;
- 常量引用 , 是不可修改的 , 聲明一個(gè) 普通變量 的 常量引用 , 之后不再使用 變量 , 轉(zhuǎn)而使用 該 常量引用 , 相當(dāng)于 將 變量 轉(zhuǎn)為了 常量 ;
常量引用 可以令 變量的引用 轉(zhuǎn)為 常量 ; 即 不能通過 常量引用 修改 變量 ;
如果修改 常量引用 的值 , 編譯時(shí)會(huì)報(bào)錯(cuò) :
error C3892: “b”: 不能給常量賦值
2、常量引用概念與語法
在 C++ 語言中 , " 常量引用 " , 英文名稱為 Const Reference , 是一種引用類型 , 另外一種引用就是 " 普通引用 " ;
使用 " 常量引用 " 可以將一個(gè)變量的值傳遞給一個(gè)函數(shù)的 常量引用形參 , 可以保證該變量值不會(huì)在函數(shù)內(nèi)部被修改 ;
" 常量引用 " 常用于如下場(chǎng)景 :
- 作為函數(shù)形參
- 作為函數(shù)返回值
- 定義對(duì)象成員
常量引用 語法 :
const T& variable_name = value;
- T 是 常量引用 的類型名稱 , 如 : int , string ;
- variable_name 是 常量引用 的名稱 , 調(diào)用該常量引用 , 不可修改 value 變量的值 ;
- value 是 被引用的 變量 , 調(diào)用該變量可以修改變量的值 ;
2、代碼示例 - 常量引用不可修改
在下面的函數(shù)中 , 先聲明了 普通變量 a ,
然后定義了 變量 a 的 常量引用 b ,
常量引用 b 其 本質(zhì)就是一個(gè)常量 , 通過 常量引用 b 可以獲取 變量 a 的值 , 但是無法修改 變量 a 的值 ;
如果強(qiáng)行通過 常量引用 b 修改 變量 a 的值 , 則會(huì)報(bào)錯(cuò) :
error C3892: “b”: 不能給常量賦值
錯(cuò)誤代碼示例 :
// 包含 C++ 頭文件
#include "iostream"
// 使用 std 標(biāo)準(zhǔn)命名空間
// 該命名空間中 , 定義了很多標(biāo)準(zhǔn)定義
using namespace std;
// 導(dǎo)入 C 頭文件
#include <stdio.h>
int main()
{
// II . 常量引用
// 定義變量 a
int a = 10;
// 定義變量 a 的 常量引用 b
const int& b = a;
// 打印 常量引用 b 的值
printf("b = %d\n", b);
// 修改 常量引用 b 的值
// 報(bào)錯(cuò) : error C3892: “b”: 不能給常量賦值
b = 20;
// 控制臺(tái)暫停 , 按任意鍵繼續(xù)向后執(zhí)行
system("pause");
return 0;
}
執(zhí)行結(jié)果 :文章來源:http://www.zghlxwxcb.cn/news/detail-677767.html
已啟動(dòng)生成…
1>------ 已啟動(dòng)生成: 項(xiàng)目: HelloWorld, 配置: Debug Win32 ------
1>hello_world.cpp
1>D:\002_Project\006_Visual_Studio\HelloWorld\HelloWorld\hello_world.cpp(24,2): error C3892: “b”: 不能給常量賦值
1>已完成生成項(xiàng)目“HelloWorld.vcxproj”的操作 - 失敗。
========== 生成: 成功 0 個(gè),失敗 1 個(gè),最新 0 個(gè),跳過 0 個(gè) ==========
文章來源地址http://www.zghlxwxcb.cn/news/detail-677767.html
到了這里,關(guān)于【C++】C++ 引用詳解 ⑧ ( 普通引用與常量引用 | 常量引用概念與語法 )的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!