色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

const在C語言與C++中的區別與使用!

C語言編程學習基地 ? 來源:C語言編程學習基地 ? 作者:C語言編程學習基地 ? 2022-04-24 16:08 ? 次閱讀

簡單的const關鍵字里面的學問還是挺大的,越是基礎的知識越是容易忘卻。

a1e3ed36-c39f-11ec-bce3-dac502259ad0.jpg

1.在c語言中const

在C語言中 const關鍵字用來修飾變量名為只讀,僅此而已。

也就是說通過變量名不可以修改它的值,但是可以通過得到它的地址來修改他的值。

#include《stdio.h》int main(){

const int a = 10;

int *p = (int *)&a;

*p = 20;

printf(“a = %d

”,a);

return 0;}

同時被const修飾的全局變量也就是外連接,其他源文件要引用只需要加上extern即可。

被const修飾的全局變量不能以地址的形式進行修改,由于它在內存中位于常量區,他的地址空間是只讀的。在C語言中被const的變量是直接被分配內存的。

a1fb1858-c39f-11ec-bce3-dac502259ad0.png

2.c++中的const

2.1 c++中const的使用

c++中 const關鍵字被用來表示常量,和#define的作用一樣。

在C++中能否通過地址來改變它的值,取決于是否給他分配了內存。主要分以下三中情況

1、const int a = 10;

這種情況是不分配內存的,直接被寫在符號表中,即使后面被分配了內存,那么a的值也不會被改變,輸出的值一直都是符號表中的值

``` #include《iostream》 int main(){

const int a = 10;

std::cout 《《 “original a =” 《《 a 《《 std::endl;

int *p = (int *)&a;

*p = 200;

std::cout 《《 “*p =” 《《 *p 《《 std::endl;

std::cout 《《 “last a =” 《《 a 《《 std::endl;

return 0; } ```

測試結果如下圖所示:

a20ac99c-c39f-11ec-bce3-dac502259ad0.png

2、int b =100;

const int a = b;

3、const person per ={"name","id"}

2和3這種情況都是直接分配內存的,并不會被寫在符號表中,它的值是可以通過地址訪問的方式來改變的。

2.2 c++中const的使用建議

在c++中盡量將宏定義#define 替換為 const

由于#define在編譯的預處理階段就替換為相對應的常量,假如 #define Max 1024; 那么我們在由于這發生錯誤,他只會提示1024出現錯誤,

而我們換成const int Max = 1024;系統就會提示我們這一行發生了錯誤,并且定義到相對應的行。

2.3 常量指針與指針常量的區別

這一題目都是面試中好多公司愿意問的問題,剛好學習到這,就把這塊也納入到本章節中。

指針常量

int *const p;,顧名思義它是一個常量,只不過被指針修飾。

int a = 10, b =20;int *const p = &a;

p = &b; //×*p = 30; //√

常量指針

const int *p;p是一個常量

int a = 10, b =20;int *const p = &a;

p = &b; //√*p = 30; //×

審核編輯 :李倩

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

    關注

    180

    文章

    7618

    瀏覽量

    138700
  • C++
    C++
    +關注

    關注

    22

    文章

    2115

    瀏覽量

    74166
  • CONST
    +關注

    關注

    0

    文章

    45

    瀏覽量

    8244

原文標題:知識分享:const 在C語言與C++中的區別與使用!

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Spire.XLS for C++組件說明

    Spire.XLS for C++ 是一款專業的 C++ Excel 組件,可以用在各種 C++ 框架和應用程序。Spire.XLS for C+
    的頭像 發表于 01-14 09:40 ?259次閱讀
    Spire.XLS for <b class='flag-5'>C++</b>組件說明

    AKI跨語言調用庫神助攻C/C++代碼遷移至HarmonyOS NEXT

    產品創新與功能迭代,而非技術遷移的細節問題,大幅提升開發效率。 據悉,涉及C/C++/ETS跨越語言調用的鴻蒙化應用,有超過80%的項目
    發表于 01-02 17:08

    同樣是函數,CC++中有什么區別

    同樣是函數, CC++ 中有什么區別? 第一個返回值。 C語言的函數可以不寫返回值類型,
    的頭像 發表于 11-29 10:25 ?552次閱讀

    C語言C++結構體的區別

    同樣是結構體,看看在C語言C++中有什么區別
    的頭像 發表于 10-30 15:11 ?451次閱讀

    C7000優化C/C++編譯器

    電子發燒友網站提供《C7000優化C/C++編譯器.pdf》資料免費下載
    發表于 10-30 09:45 ?0次下載
    <b class='flag-5'>C</b>7000優化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器

    ostreamc++的用法

    ostream 是 C++ 標準庫中一個非常重要的類,它位于 頭文件(實際上,更常見的是通過包含 頭文件來間接包含 ,因為 包含了 和 )。 ostream 類及其派生類(如 std::cout
    的頭像 發表于 09-20 15:11 ?1210次閱讀

    ModusToolbox 3.2c代碼包含c++代碼的正確步驟是什么?

    使用 ModusToolbox 3.2 我有一個用純 C 語言編寫的 XMC4700 項目。 我正在嘗試添加一些 C++ 函數,并將其合并到我的原始代碼。 我可以構建獨立的 .cpp
    發表于 07-23 08:21

    C++語言基礎知識

    電子發燒友網站提供《C++語言基礎知識.pdf》資料免費下載
    發表于 07-19 10:58 ?8次下載

    C++實現類似instanceof的方法

    函數,可實際上C++沒有。但是別著急,其實C++中有兩種簡單的方法可以實現類似Java的instanceof的功能。
    的頭像 發表于 07-18 10:16 ?739次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>中</b>實現類似instanceof的方法

    PLC編程語言C語言區別

    工業自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。盡管兩者都是編程語言,但它們
    的頭像 發表于 06-14 17:11 ?3684次閱讀

    SEGGER編譯器優化和安全技術介紹 支持最新CC++語言

    SEGGER編譯器是專門為ARM和RISC-V微控制器設計的優化C/C++編譯器。它建立強大的Clang前端上,支持最新的CC++
    的頭像 發表于 06-04 15:31 ?1604次閱讀
    SEGGER編譯器優化和安全技術介紹 支持最新<b class='flag-5'>C</b>和<b class='flag-5'>C++</b><b class='flag-5'>語言</b>

    C/C++兩種宏實現方式

    #ifndef的方式受C/C++語言標準支持。它不僅可以保證同一個文件不會被包含多次,也能保證內容完全相同的兩個文件(或者代碼片段)不會被不小心同時包含。
    的頭像 發表于 04-19 11:50 ?770次閱讀

    鴻蒙OS開發實例:【Native C++

    使用DevEco Studio創建一個Native C++應用。應用采用Native C++模板,實現使用NAPI調用C標準庫的功能。使用C標準庫hypot接口計算兩個給定數平方和的平
    的頭像 發表于 04-14 11:43 ?2918次閱讀
    鴻蒙OS開發實例:【Native <b class='flag-5'>C++</b>】

    使用 MISRA C++:2023? 避免基于范圍的 for 循環中的錯誤

    在前兩篇博客,我們?向您介紹了新的 MISRA C++ 標準?和?C++ 的歷史?。在這篇博客,我們將仔細研究以 C++
    的頭像 發表于 03-28 13:53 ?927次閱讀
    使用 MISRA <b class='flag-5'>C++</b>:2023? 避免基于范圍的 for 循環中的錯誤

    為什么很少用C++開發單片機

    C語言是面向過程的語言C++是面向對象的編程語言。結合本文來說,面向過程相比面向對象的編程,生成代碼量(bin文件)更小,運行效率更高。
    發表于 03-25 14:26 ?1310次閱讀
    為什么很少用<b class='flag-5'>C++</b>開發單片機
    主站蜘蛛池模板: 国产精品大全国产精品 | 国产免费人成在线视频视频 | 乱爱性全过程免费视频 | 欧美嫩freexxxhddvd| 午夜精品久久久久久影视riav | 乳液全集电影在线观看 | 夜夜狂射影院欧美极品 | 无码AV毛片色欲欧洲美洲 | 国产av免费观看日本 | 日韩经典欧美一区二区三区 | 美女议员被泄裸照 | 欧美国产日韩久久久 | 老少配xxxxx欧美 | 国产91网站在线观看免费 | 日韩欧美一区二区三区免费观看 | 正在播放黑人杂交派对卧槽 | 亚洲日本欧美国产在线视 | 欧美高清video mr.sexo | 国产色婷婷亚洲99精品 | 国产精品国产三级国产专区53 | 久久操韩国自偷拍 | 在线欧美免费人成视频 | 恋夜直播午夜秀场最新 | 伊人精品视频直播 | 国产永久免费高清在线观看 | 色爱区综合小说 | se01短视频在线观看 | a视频在线免费观看 | 97精品一区二区视频在线观看 | thermo脱色摇床安卓下载 | 国产午夜电影院 | 日韩亚洲欧美中文高清 | 色一情一乱一伦一区二区三区 | 偷偷鲁青春草原视频 | 日韩精品无码免费专区 | 软糯白嫩双性受h | 国产色精品久久人妻无码看片软件 | 亚洲高清视频网站 | 97人人爽人人爽人人人片AV | 国产AV一区二区三区传媒 | 亚洲熟妇色自偷自拍另类 |