女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    7632

    瀏覽量

    141676
  • C++
    C++
    +關注

    關注

    22

    文章

    2119

    瀏覽量

    75289
  • CONST
    +關注

    關注

    0

    文章

    45

    瀏覽量

    8462

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    OpenVINO? C++代碼啟用 AddressSanitizer 時的內存泄漏怎么解決?

    OpenVINO? C++代碼啟用 AddressSanitizer 時遇到內存泄漏: \"#0 0xaaaab8558370 in operator new(unsigned
    發表于 06-23 07:16

    主流的 MCU 開發語言為什么是 C 而不是 C++

    單片機的地界兒里,C語言穩坐中軍帳,C++想分杯羹?難嘍。咱電子工程師天天跟那針尖大的內存空間較勁,C++那些花里胡哨的玩意兒,在這兒真玩
    的頭像 發表于 05-21 10:33 ?442次閱讀
    主流的 MCU 開發<b class='flag-5'>語言</b>為什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C++</b>?

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

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

    源代碼加密、源代碼防泄漏c/c++與git服務器開發環境

    源代碼加密對于很多研發性單位來說是至關重要的,當然每家企業的業務需求不同所用的開發環境及開發語言也不盡相同,今天主要來講一下c++及git開發環境的源代碼防泄密保護方案。企業源代碼泄密場景一、很多
    的頭像 發表于 02-12 15:26 ?526次閱讀
    源代碼加密、源代碼防泄漏<b class='flag-5'>c</b>/<b class='flag-5'>c++</b>與git服務器開發環境

    Spire.XLS for C++組件說明

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

    EE-112:模擬C++的類實現

    電子發燒友網站提供《EE-112:模擬C++的類實現.pdf》資料免費下載
    發表于 01-03 15:15 ?0次下載
    EE-112:模擬<b class='flag-5'>C++</b><b class='flag-5'>中</b>的類實現

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

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

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

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

    C7000 C/C++優化指南用戶手冊

    電子發燒友網站提供《C7000 C/C++優化指南用戶手冊.pdf》資料免費下載
    發表于 11-09 15:00 ?0次下載
    <b class='flag-5'>C</b>7000 <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>優化指南用戶手冊

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

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

    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 ?1937次閱讀

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

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

    C++語言基礎知識

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

    C++實現類似instanceof的方法

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