C++ :頂層const與底層const的區別

頂層const與底層const的區別?

定義與核心區別
頂層?const?(Top-level?const)底層?const?(Low-level?const)
?作用對象變量本身是常量(不可修改)變量指向或引用的對象是常量(不可修改)
?典型場景指針本身不可變、普通變量為常量指針/引用指向的值不可變
?是否影響類型不影響類型兼容性(如函數重載)影響類型兼容性(如函數重載、類型轉換)
示例 1:指針中的頂層與底層?const
int a = 10;// 底層 const:指向的值不可變(const 在左側)
const int* p1 = &a;  // p1 可指向其他地址,但 *p1 不可修改
p1 = &a;             // 合法:修改指針地址
// *p1 = 20;         // 非法:底層 const 禁止修改值// 頂層 const:指針本身不可變(const 在右側)
int* const p2 = &a;  // p2 不可指向其他地址,但 *p2 可修改
// p2 = &a;          // 非法:頂層 const 禁止修改指針地址
*p2 = 20;            // 合法:修改指向的值// 雙重 const
const int* const p3 = &a;  // 指針和指向的值均不可變
?示例 2:引用中的底層?const
int b = 30;
const int& ref = b;  // 底層 const:通過 ref 無法修改 b
// ref = 40;         // 非法
b = 40;              // 合法:直接修改原始變量

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72768.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72768.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72768.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Chainlit 自定義元素開發指南:使用 JSX 和受限導入實現交互式界面

自定義元素 Custom Element 類允許你渲染一個自定義的 .jsx 代碼片段。.jsx 文件應當放置在 public/elements/ELEMEN_NAME.jsx 目錄下。 屬性 name 字符串 自定義元素的名稱。它應該與你的JSX文件名相匹配(不包括 .jsx擴展名)。 props 字典 傳遞給 JSX 的屬性。 display El…

Opencv之計算機視覺一

一、環境準備 使用opencv庫來實現簡單的計算機視覺。 需要安裝兩個庫:opencv-python和opencv-contrib-python,版本可以自行選擇,注意不同版本的opencv中的某些函數名和用法可能不同 pip install opencv-python3.4.18.65 -i https://pypi.t…

k8s中PAUSE容器與init容器比較 local卷與hostpath卷比較

目錄 一、PAUSE容器與INIT容器比較 1. Pause 容器 作用 特點 示例 2. Init 容器 作用 特點 示例 3. Pause 容器 vs Init 容器 4. 總結 這兩個哪個先啟動呢? 詳細啟動順序 為什么 Pause 容器最先啟動? 示例 總結 二、local卷與hostpath卷…

Vue3 + TS組件封裝指南

在 Vue 3 TypeScript 中封裝組件時,需要注意以下幾點: 1. Props 定義 使用 defineProps 或 PropType 定義組件的 props,并為其添加類型。 示例: import { defineComponent, PropType } from vue;export default defineComponen…

mybatis_plus的樂觀鎖

樂觀鎖:總是假設最好的情況,每次讀取數據時認為數據不會被修改(即不加鎖),當進行更新操作時,會判斷這條數據是否被修改,未被修改,則進行更新操作。若被修改,則數據更新失…

Redis系列:深入理解緩存穿透、緩存擊穿、緩存雪崩及其解決方案

在使用Redis作為緩存系統時,我們經常會遇到“緩存穿透”、“緩存擊穿”和“緩存雪崩”等問題,這些問題一旦出現,會嚴重影響應用性能甚至造成服務不可用。因此,理解這些問題的產生原因和解決方案非常重要。 本文將全面講解緩存穿透…

AT指令集-NBIOT

是什么? 窄帶物聯網(Narrow Band Internet of Things, NB-IoT)成為萬物互聯網絡的一個重要分支支持低功耗設備在廣域網的蜂窩數據連接,也被叫作低功耗廣域網(LPWAN)NB-IoT支持待機時間長、對網絡連接要求較高設備的高效連接NB-Io…

CBNet:一種用于目標檢測的復合骨干網架構之論文閱讀

摘要 現代頂級性能的目標檢測器在很大程度上依賴于骨干網絡,而骨干網絡的進步通過探索更高效的網絡結構帶來了持續的性能提升。本文提出了一種新穎且靈活的骨干框架——CBNet,該框架利用現有的開源預訓練骨干網絡,在預訓練-微調范式下構建高…

c++中字符串string常用的函數

在C中&#xff0c; std::string 類有許多常用函數&#xff0c;以下是一些常見的&#xff1a; 1. length() 或 size() &#xff1a;返回字符串的長度&#xff08;字符個數&#xff09;&#xff0c;二者功能相同。例如&#xff1a; #include <iostream> #include <str…

《保險科技》

自己在保險行業工作很多年&#xff0c;只是接觸了一些數據的內容&#xff0c;對于保險業務的知識了解的很少&#xff0c;想通過這本書補充一下&#xff0c;但是發現這本書就是一些知識的拼接。 先將保險的歷史&#xff0c;后講保險的定義&#xff0c;然后就是吹噓保險行業和互聯…

藍橋杯第13屆真題2

由硬件框圖可以知道我們要配置LED 和按鍵 一.LED 先配置LED的八個引腳為GPIO_OutPut&#xff0c;鎖存器PD2也是&#xff0c;然后都設置為起始高電平&#xff0c;生成代碼時還要去解決引腳沖突問題 二.按鍵 按鍵配置&#xff0c;由原理圖按鍵所對引腳要GPIO_Input 生成代碼&a…

java之IP 工具類

java程序一直需要獲取物理機的ip&#xff0c;寫了一個ip的工具類&#xff0c;感覺日常所需夠了 import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.UnknownHostException;/*** IP 工具類*/ public class IpUtil {public static St…

貪心算法作業參考:P1106,P4995,P5019

貪心算法作業參考&#xff1a;P1106&#xff0c;P4995&#xff0c;P5019 P1106 刪數問題 作業批注&#xff1a; 原作業提交&#xff0c;是刪除k個最大的數。 不一定是刪除最大的數。 參考如下&#xff0c;用例&#xff1a; 輸入&#xff1a; 50074897 2輸出&#xff1a; 4…

雙曲空間學習記錄

文章目錄 前期學習內容雙曲空間中的圖卷積神經網絡 前期學習內容 雙曲空間中的圖卷積神經網絡 250318&#xff1a;這個博客的產生原因是我去看了B站上的一個視頻&#xff0c;up說ppt上傳到github上了&#xff0c;但是我去找了一圈也沒有找到&#xff0c;然后想給他留言&#x…

【ES6新特性】默認參數常見用法

ES6新特性之默認參數的多種用法 &#x1f680;默認參數基礎用法 在ES6中&#xff0c;我們可以直接在函數參數列表中為參數設置默認值&#xff1a; // ES5的實現方式 function greet(name) {name name || Guest;console.log(Hello, ${name}!); }// ES6默認參數寫法 function…

LORA的AB矩陣是針對Transformer的多頭還是MLP

LORA的AB矩陣是針對Transformer的多頭還是MLP Transformer中的矩陣是一個整體還是分開的每個小矩陣 在LORA(Low-Rank Adaptation)中,AB矩陣的應用位置和Transformer中的矩陣拆分方式如下: 1. LORA的AB矩陣作用對象 LORA的AB矩陣主要作用于Transformer的多頭注意力模塊和…

【大模型基礎_毛玉仁】2.4 基于 Encoder-Decoder 架構的大語言模型

更多內容&#xff1a;XiaoJ的知識星球 目錄 2.4 基于 Encoder-Decoder 架構的大語言模型2.4.1 Encoder-Decoder 架構2.4.2 T5 語言模型1&#xff09;T5 模型結構2&#xff09;T5 預訓練方式3&#xff09;T5 下游任務 2.4.3 BART 語言模型1&#xff09;BART 模型結構2&#xff0…

browser-use WebUI + DeepSeek 基于AI的UI自動化解決方案

browser-use WebUI 一、browser-use是什么Browser-use采用的技術棧為&#xff1a; 二、browser-use webui 主要功能使用場景 三、使用教程1.python 安裝2、把項目clone下來3、安裝依賴4、配置環境5、啟動6、配置1.配置 Agent2.配置要用的大模型3.關于瀏覽器的一些設置 四、Deep…

WPF CommunityToolkit.MVVM庫的簡單使用

CommunityToolkit.MVVM 是 .NET 社區工具包中的一部分&#xff0c;它為實現 MVVM&#xff08;Model-View-ViewModel&#xff09;模式提供了一系列實用的特性和工具&#xff0c;能幫助開發者更高效地構建 WPF、UWP、MAUI 等應用程序。以下是關于它的詳細使用介紹&#xff1a; 1…

Windows安裝Apache Maven 3.9.9

第一步下載資源 官網&#xff1a;下載 Apache Maven – Maven 環境變量配置 M2_HOME 指向bin目錄 MAVEN_HOME 指向根目錄 M2_HOME 不確定是否必須要 Path配置 &#xff0c;需要注意MAVEN順序應當在java之前 驗證是否安裝成功&#xff0c;在cmd中以管理員方式打開&#xff0c…