国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣去使用C語言中的const關鍵字呢

冬至配餃子 ? 來源:最后一個bug ? 作者:bug菌 ? 2022-08-12 09:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

/***const是什么?***/

C語言中const是一個關鍵字,const字面的意思是“恒定的,不變的”,其主要的作用是const定義的變量,但又相當于常量,其值不允許被改變。

值得注意的是:

1)const修飾的變量的
生存周期為其定義到整個程序結束運行,不管是全局變量還是局部變量。

2)對于const變量在
初始化的時候就需要進行按我們的期望進行賦值,其他時候修改則會造成語法錯誤。

3)對于
const特性跟編譯器相關,不過大部分是一致的!

4)const是在
編譯的時候編譯器進行的一些處理!

/***如何使用const?***/

一、C語言中const修飾的變量占用內存

我們先看加兩個例子:

下圖C語言

pYYBAGL1qK6AQjmdAABt1-vJyvw190.png

下圖C++語言

poYBAGL1qMSAWll7AAB4Amh5CzA508.png

我們編譯會發現C語言無法通過,主要是原因是我們定義const變量n并不是常量所以編譯無法通過。所以用const定義的變量僅僅為只讀變量,同樣需要占用內存。而C++可以通過,而它相對比較復雜,這里不在展開描述!

二、const注釋函數參數和返回值

我們通過修飾函數形參來保護傳入的參數不被意外修改,有利于程序穩定性。我們一般不會用const修飾值傳遞,因為值傳遞是一個賦值的過程,在函數內部修改不會改變其值,所以不是很有意義;一般用const注釋指針傳遞,防止內部修改導致外部變化,比如:void sFuc(const char *des,const char *src);這樣就防止了des和src值的意外修改。

修飾返回值一般用得比較少,采用const修飾返回值一般也不用于值傳遞,而是多用于指針傳遞!


三、const變量能通過指針修改嗎?

我們通過下面兩個例子:

pYYBAGL1qOGASIW4AAExAvqRXnQ540.png

我們會發現兩者的區別const一個注釋的全局變量一個注釋的局部變量,我們編譯都能通過,不過使用全部變量的程序運行會報段錯誤,而局部變量的能夠過得正確結果。對于通過指針修改const的值是一種與編譯器有關的行為,我們認為可以用指針修改堆棧上的局部變量,而全部變量const修飾以后為只讀區域,如果程序訪問則會導致異常!

四、const注釋指針的終極奧義

我們把const處把右側的語句括起來,去掉數據類型,括起來的內容是什么就是什么不能被修改。

如:

1)const int *pVar=&addr;根據上面的方法括起來的內容(* pVar)表示的是指針的內容,那么不能執行*pVar內容的修改,比如說*pVar=123;則編譯會報錯。不過可以修改指針的地址,比如pVar = &addr2;這樣是可以修改的并且我們再次訪問pVar的內容則變成了addr2的內容了。

2)同樣intconst *pVar=&addr;跟上面是一樣的處理辦法。

3)int* const pVar=&addr;這個剛剛與前面的相反,其括起來的為(pVar)所以值能使用*pVar作為左值,不能修改pVar所指向的地址。

4)對于constint* constpVar=&addr則都不可進行修改!只能作為右值可讀。

5)我們同樣可以擴展下對于二級指針

constchar*const*constp全部限定為只讀,都不可以改寫,如果一個開放對應的就可以被修改!


審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5198

    文章

    20449

    瀏覽量

    334058
  • C語言
    +關注

    關注

    183

    文章

    7644

    瀏覽量

    145598
  • 編譯器
    +關注

    關注

    1

    文章

    1672

    瀏覽量

    51610
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    C語言嵌入式系統編程注意事項-內存操作

    的輸出參數。 (2)合理地使用關鍵字const可以使編譯器很自然地保護那些不**被改變的參數,防止其被無意的代碼修改,這樣可以減少bug的出現。 constC++
    發表于 01-04 07:31

    單片機c語言中定義字節怎么定義?

    定義位可以用***it但是定義字節?還有就是比如匯編中的DPTR的DPH和DPL在c語言中怎樣定義的?
    發表于 12-29 06:32

    C語言C++的區別及聯系

    缺點:性能比面向過程低。 二、具體語言上的區別 1、關鍵字的不同 C語言有32個關鍵字C
    發表于 12-24 07:23

    關鍵字volatile的含意

    關鍵字volatile有什么含意? 一個定義為volatile的變量是說這變量可能會被意想不到地改變,這樣,編譯器就不會去假設這個變量的值了。精確地說就是,優化器在用到這個變量時必須每次都小心
    發表于 12-23 06:33

    Typedef在C語言中的應用

    Typedef 在C語言中頻繁用以聲明一個已經存在的數據類型的同義。也可以用預處理器做類似的事。例如,思考一下下面的例子: #define dPS struct s * typedef
    發表于 12-22 13:53

    interrupt關鍵字使用

    中斷是嵌入式系統中重要的組成部分,這導致了很多編譯開發商提供一種擴展—讓標準C支持中斷。具代表事實是,產生了一個新的關鍵字__interrupt。下面的代碼就使用了__interrupt關鍵字
    發表于 12-22 09:36

    C語言中可以嵌套匯編語言嗎?

    請問C語言中可以嵌套匯編語言嗎?
    發表于 12-15 08:14

    Temu跨境電商按關鍵字搜索Temu商品API的應用及接口請求示例

    Temu跨境電商按關鍵字搜索Temu商品API的應用及接口請求示例 Temu跨境電商按關鍵字搜索Temu商品API的應用場景 Temu跨境電商平臺按關鍵字搜索Temu商品API的主要應用場景包括但不
    的頭像 發表于 11-29 15:08 ?453次閱讀

    C語言的編程技巧

    、_Alignas關鍵字?:C11標準引入了_Alignas關鍵字,用于顯式指定類型的對齊方式,優化內存訪問效率。 ?5、_Generic關鍵字?:
    發表于 11-27 06:46

    哪些場合會用到volatile關鍵字?

    當你理解 volatile關鍵字的含義之后,你就能明白,其實很多場合都能用到 volatile關鍵字。 1.全局變量單片機開發,難免會用到全局變量。一些初級工程師,更是全局變量滿天飛。這種情況下
    發表于 11-25 08:19

    天眼查平臺關鍵字搜索企業數據API接口技術指南

    ? 一、接口概述 天眼查提供的企業搜索API接口,支持通過關鍵字查詢企業工商信息、經營狀態等核心數據。該接口采用RESTful架構,返回JSON格式數據。 二、接口認證 調用需使用API密鑰認證
    的頭像 發表于 11-21 11:48 ?712次閱讀
    天眼查平臺<b class='flag-5'>關鍵字</b>搜索企業數據API接口技術指南

    亞馬遜平臺根據關鍵字搜索商品API接口

    ? ?在電商開發中,集成亞馬遜平臺的商品搜索功能是常見需求。通過亞馬遜的Product Advertising API(PAAPI),開發者可以根據關鍵字高效檢索商品信息。本技術帖將逐步介紹如何調用
    的頭像 發表于 11-05 15:00 ?372次閱讀
    亞馬遜平臺根據<b class='flag-5'>關鍵字</b>搜索商品API接口

    micro 關鍵字搜索全覆蓋商品,并通過 API 接口提供實時數據

    micro 關鍵字搜索全覆蓋商品”并通過 API 接口提供實時數據
    的頭像 發表于 07-13 10:13 ?880次閱讀

    單片機編程關鍵字之volatile

    它的存在。也有很多人知道它的存在,根本沒用過,我對它有種“楊家有女初長成, 養在深閨無人識”的感覺volatile 關鍵字到底是什么意思,怎么用1、volat
    發表于 04-02 13:47 ?2次下載

    帶你在單片機編程中熟練使用const(可下載)

    C 語言關鍵字const 舉足輕重,我們今天就深度聊一聊 const 的定義和實際應用,讓它 不再是迷
    發表于 04-01 14:18 ?3次下載