【C語言】const修飾普通變量和指針

大家好,我是蘇貝,本篇博客帶大家了解const修飾普通變量和指針,如果你覺得我寫的還不錯的話,可以給我一個贊👍嗎,感謝??
在這里插入圖片描述


文章目錄

  • 一.const修飾普通變量
  • 二.const修飾指針
    • 1.const 放在 * 左邊
    • 2.const 放在 * 右邊
    • 3.const 放在 * 左右兩邊

一.const修飾普通變量

用const修飾普通變量時,是在語法層面限制了變量的修改,但是本質上,變量還是變量,是一種不能被修改的變量。以下兩種定義方式都可以:

    const int a = 10;int const b = 10;

變量的值不能修改,否則會報錯
在這里插入圖片描述

但變量的值可以通過指針進行修改:
在這里插入圖片描述
所以為避免變量的值被修改,同時又需要使用指針指向變量,那么就讓const修飾指針


二.const修飾指針

const 可以放在 * 左邊 ,可以放在 * 右邊 ,也可以放在 * 左右兩邊,這3種方式的意義各不相同

1.const 放在 * 左邊

const 放在 * 左邊限制的是指針指向的內容,也就是說:不能通過指針來修改指針指向的內容,但是指針變量是可以修改的,也就是指針可以指向其它變量

int main()
{const int a = 10;const int* p = &a;*p = 20;//errint b = 20;p = &b;//okreturn 0;
}

2.const 放在 * 右邊

const 放在 * 右邊限制的是指針變量本身,指針變量不能再指向其它內容,但是可以通過指針變量來修改指針指向的內容

int main()
{const int a = 10;int* const p = &a;*p = 20;//okint b = 20;p = &b;//errreturn 0;
}

3.const 放在 * 左右兩邊

const 放在 * 左右兩邊限制的是指針變量本身和指針變量指向的內容,也就是說:不能通過指針來修改指針指向的內容,指針也不能指向其它變量

int main()
{const int a = 10;const int* const p = &a;*p = 20;//errint b = 20;p = &b;//errreturn 0;
}

好了,那么本篇博客就到此結束了,如果你覺得本篇博客對你有些幫助,可以給個大大的贊👍嗎,感謝看到這里,我們下篇博客見??

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

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

相關文章

git commit用法

git commit 是 Git 版本控制系統中的一個命令,用于將更改提交到本地存儲庫。以下是 git commit 的一些常見用法和選項: 基本用法: git commit -m "提交信息"使用 -m 選項可以直接在命令行中添加提交信息。 提交所有更改: git commit -a -m &q…

設計模式-簡單工廠模式

簡單工廠模式又稱為靜態工廠模式,其實就是根據傳入參數創建對應具體類的實例并返回實例對象,這些類通常繼承至同一個父類,該模式專門定義了一個類來負責創建其他類的實例。 using System.Collections; using System.Collections.Generic; us…

Nacos - 安裝指南(Windows系統)

一、下載安裝包 Nacos現在雖然已經出到二點幾的版本,但二點幾版本還處在測試階段,我們選擇下載成熟的 1.4.6 版本 下載地址:Nacos 1.4.6 GitHub的Release下載頁 拉到頁面最底部,可以看到下載按鈕,windows版本使用naco…

htmlCSS-----彈性布局

目錄 前言 什么是彈性布局 樣式 學習概要 容器和項目 彈性布局的排列方式 1.橫向排列(默認樣式) 2.父元素容器的屬性(*5) (1)主軸 代碼示例: (2)交叉軸 3.子元素…

正則表達式試煉

序 我希望在這里列出我很多想寫的正則表達式,很多我想寫,但是不知道怎么寫的。分享點滴案例。未來這個文章會越來越長 前言 互聯網時代,除了文本還有更好的學習方式,下面是幾個不錯的練習網站,如果你想系統地學習&a…

[Flutter]有的時候調用setState(() {})報錯?

先看FlutterSDK的原生類State中有一個變量mounted。 abstract class State<T extends StatefulWidget> with Diagnosticable {/// mounted的作用是&#xff0c;此State對象當前是否在樹中。/// 在創建State對象之后&#xff0c;在調用initState之前&#xff0c;框架通過…

【Linux】【驅動】應用層和驅動層傳輸數據

【Linux】【驅動】應用層和驅動層傳輸數據 緒論1.如果我在應用層使用系統0 對設備節點進行打開&#xff0c;關閉&#xff0c;讀寫等操作會發生什么呢? 2 我們的應用層和內核層是不能直接進行數據傳輸的3 驅動部分的代碼4 應用代碼5 編譯以及運行代碼 緒論 Linux一切皆文件! 文…

如何使用CSS實現一個下拉菜單?

聚沙成塔每天進步一點點 ? 專欄簡介? 使用CSS實現下拉菜單? HTML 結構? CSS 樣式? 寫在最后 ? 專欄簡介 前端入門之旅&#xff1a;探索Web開發的奇妙世界 記得點擊上方或者右側鏈接訂閱本專欄哦 幾何帶你啟航前端之旅 歡迎來到前端入門之旅&#xff01;這個專欄是為那些…

學習筆記」左偏樹

dist 的性質 對于一棵二叉樹&#xff0c;我們定義左孩子或右孩子為空的節點為外節點&#xff0c;定義外節點的 distdist 為 11&#xff0c;空節點的 distdist 為 00&#xff0c;不是外節點也不是空節點的 distdist 為其到子樹中最近的外節點的距離加一。 一棵根的 distdist 為…

中間件(下)

1、中間件與性能優化的關系&#xff1a; 中間件與性能優化之間存在密切的關系&#xff0c;特別是在構建復雜的分布式系統、處理高并發、實現異步通信等情況下。中間件可以在性能優化方面發揮重要作用&#xff0c;但同時&#xff0c;不當的中間件選擇和配置也可能導致性能問題。…

【卡碼網】31. 字符串的最大價值 <貪心>

【卡碼網】31. 字符串的最大價值 給定一個字符串 S S S&#xff08;S.lenth < 5000&#xff09;&#xff0c;只包含 0 和 1 兩個數字&#xff0c;下標從 1 開始&#xff0c;設第 i i i 位的價值為 v a l i val_i vali?&#xff0c;則 v a l i val_i vali?的定義如下&a…

神經網絡基礎-神經網絡補充概念-52-正則化網絡的激活函數

概念 正則化是一種用于減少過擬合&#xff08;overfitting&#xff09;的技術&#xff0c;可以在神經網絡的各個層次中應用&#xff0c;包括激活函數。激活函數的正則化主要目的是減少神經網絡的復雜度&#xff0c;防止網絡在訓練集上過度學習&#xff0c;從而提高泛化能力。 …

ubuntu20.04 root用戶下使用中文輸入法——root用戶pycharm無法用中文輸入法問題

因為一些眾所不周知的bug&#xff0c;我的pycharm使用apt或者snap安裝都不行了&#xff0c;官網下了“綠色版”&#xff0c;運行pycharm.sh也運行不起來&#xff0c;有個java相關環境報錯&#xff0c;jre和jdk都裝了&#xff0c;還是有點問題&#xff0c;最后嘗試發現可以用roo…

DevOps系列文章之 GitlabCICD自動化部署SpringBoot項目

一、概述 本文主要記錄如何通過Gitlab CI/CD自動部署SpringBoot項目jar包。 二、前期準備 準備三臺 CentOS7服務器&#xff0c;分別部署以下服務&#xff1a; 序號系統IP服務1CentOS7192.168.56.10Gitlab2CentOS7192.168.56.11Runner &#xff08;安裝Docker&#xff09;3Cen…

Spring boot中的線程池-ThreadPoolTaskExecutor

一、jdk的阻塞隊列&#xff1a; 二、Spring boot工程的有哪些阻塞隊列呢&#xff1f; 1、默認注入的ThreadPoolTaskExecutor 視頻解說&#xff1a; 線程池篇-springboot項目中的service層里簡單注入ThreadPoolTaskExecutor并且使用_嗶哩嗶哩_bilibili 程序代碼&#xff1a;…

預測算法|改進粒子群算法優化極限學習機IDM-PSO-ELM

回歸擬合&#xff1a; 分類 本文是作者的預測算法系列的第四篇&#xff0c;前面的文章中介紹了BP、SVM、RF及其優化&#xff0c;感興趣的讀者可以在作者往期文章中了解&#xff0c;這一篇將介紹——極限學習機 過去的幾十年里基于梯度的學習方法被廣泛用于訓練神經網絡&am…

分布式 - 消息隊列Kafka:Kafka 消費者消息消費與參數配置

文章目錄 1. Kafka 消費者消費消息01. 創建消費者02. 訂閱主題03. 輪詢拉取數據 2. Kafka 消費者參數配置01. fetch.min.bytes02. fetch.max.wait.ms03. fetch.max.bytes04. max.poll.records05. max.partition.fetch.bytes06. session.timeout.ms 和 heartbeat.interval.ms07.…

使用 pyodbc 解析chrome瀏覽器導出的書簽并保存到 Microsoft Access 數據庫

使用 wxPython 和 pyodbc 解析書簽并保存到 Microsoft Access 數據庫的示例博客&#xff1a; 本篇博客介紹了如何使用 wxPython 和 pyodbc 庫創建一個簡單的應用程序&#xff0c;用于解析 HTML 文件中的書簽并將其保存到 Microsoft Access 數據庫中。通過這個示例&#xff0c;您…

【Sklearn】基于梯度提升樹算法的數據分類預測(Excel可直接替換數據)

【Sklearn】基于梯度提升樹算法的數據分類預測(Excel可直接替換數據) 1.模型原理2.模型參數3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 梯度提升樹(Gradient Boosting Trees)是一種集成學習方法,用于解決分類和回歸問題。它通過將多個弱學習器(通常…

ONNX版本YOLOV5-DeepSort (rknn版本已經Ready)

目錄 1. 前言 2. 儲備知識 3. 準備工作 4. 代碼修改的地方 5.結果展示 1. 前言 之前一直在忙著寫文檔&#xff0c;之前一直做分類&#xff0c;檢測和分割&#xff0c;現在看到跟蹤算法&#xff0c;花了幾天時間找代碼調試&#xff0c;看了看&#xff0c;展示效果比單純的檢…