二維碼
        企資網

        掃一掃關注

        當前位置: 首頁 » 企資頭條 » 產業 » 正文

        C++基礎概念_const關鍵字

        放大字體  縮小字體 發布日期:2021-09-14 00:28:07    作者:企資小編    瀏覽次數:44
        導讀

        1) 定義常量有時候我們希望定義這樣一種變量, 它的值不能被改變。為了滿足這一 要求, 可以用關鍵字 const 對變量的類型加以限定。const對象一旦創建后其值就不能再改變,所以const對象必須在定義的時候就初始化。

        1) 定義常量

        有時候我們希望定義這樣一種變量, 它的值不能被改變。

        為了滿足這一 要求, 可以用關鍵字 const 對變量的類型加以限定。

        const對象一旦創建后其值就不能再改變,所以const對象必須在定義的時候就初始化。

        初始值可以是任意復雜的表達式。

        與非const類型所能參與的操作相比,const 類型的對象能完成其中大部分;

        主要的限制就是只能在 const 類型的對象上執行不改變其內容的操作。


        // const int max ; //error: uninitialized const 'max' const int max = 100 ; cout << max << endl ; int j = max ; cout << j << endl ;// max = j ; //error: assignment of read-only variable 'max'


        const定義常量與define的區別:

        const是有類型的,可以做類型檢查;define只是替換,是沒有類型檢查的,容易出錯。

        所以在C++推薦的做法是使用const,不推薦使用define


        2) 定義常量指針

        const T *用于定義常量指針。

        不可通過常量指針修改其指向的內容

         int n = 4 ; const int *p = &n ;// *p = 5 ; // error: assignment of read-only location '* p'

        常量指針指向的位置可以變化

         int n = 4 ; const int *p = &n ; n =5 ; int m = 6 ; p = &m ; cout << *p << endl ;

        不能把常量指針賦值給非常量指針,反過來可以

         int n = 4 ; const int *p = &n ; n =5 ; int m = 6 ; p = &m ; int * p2 = &n ; p = p2 ; // no error cout << *p << endl ;// p2 = p ; //error: invalid conversion from 'const int*' to 'int*'

        3) 定義常引用

        不能通過常引用修改其引用的變量

         const int &r = m ; cout << r << endl ;// r = n ; //error: assignment of read-only reference 'r'

        const T 類型的常變量和 const T & 類型的引用則不能用來初始化 T & 類型的引用

        T &類型的引用 或 T類型的變量可以用來初始化 const T & 類型的引用。

         int & r = m ; const int &t = r ;// int & y = t ; // error: binding reference of type 'int&' to 'const int' discards qualifiers

        參考代碼:

        #include <iostream>#include <cstdio>using namespace std;int main (){// const int max ; //error: uninitialized const 'max' const int max = 100 ; cout << max << endl ; int j = max ; cout << j << endl ;// max = j ; //error: assignment of read-only variable 'max' int n = 4 ; const int *p = &n ;// *p = 5 ; // error: assignment of read-only location '* p' cout << *p << endl ; n =5 ; cout << *p << endl ; int m = 6 ; p = &m ; cout << *p << endl ; int * p2 = &n ; p = p2 ; cout << *p << endl ;// p2 = p ; //error: invalid conversion from 'const int*' to 'int*' int & r = m ; const int &t = r ; cout << t << endl ;// t = n ; //error: assignment of read-only reference 't'// int & y = t ; // error: binding reference of type 'int&' to 'const int' discards qualifiers return 0 ;}


        輸出結果:

        g++ const_pointer.cpp./a.out10010045656
         
        (文/企資小編)
        打賞
        免責聲明
        本文為企資小編推薦作品?作者: 企資小編。歡迎轉載,轉載請注明原文出處:http://www.sneakeraddict.net/news/show-177561.html 。本文僅代表作者個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,作者需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2023 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

        粵ICP備16078936號

        微信

        關注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯系
        客服

        聯系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號: weishitui

        客服001 客服002 客服003

        工作時間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        欧美亚洲精品中文字幕乱码免费高清 | 国产精品无码成人午夜电影| 中文字幕乱码久久午夜| 夜夜精品无码一区二区三区| 国精品无码一区二区三区左线| 亚洲国产精品无码久久青草| 免费无码av片在线观看| 免费无码作爱视频| 无码国产亚洲日韩国精品视频一区二区三区 | 久久久久亚洲AV无码专区网站 | 中文字幕欧美在线| 亚洲欧美精品一区久久中文字幕 | 久久国产亚洲精品无码| 久久久久亚洲av无码专区| 人妻精品久久久久中文字幕一冢本| 中文无码制服丝袜人妻av| 亚洲成AV人在线播放无码| 少妇人妻无码精品视频app| 911国产免费无码专区| 亚洲欧美综合在线中文| 99高清中文字幕在线| 国产高清中文欧美| 精品一区二区无码AV| 国内精品人妻无码久久久影院导航 | 无码人妻精品一区二区| 久久无码人妻一区二区三区| 久久精品?ⅴ无码中文字幕| 无码av不卡一区二区三区| 少妇人妻偷人精品无码视频新浪 | 在线看中文福利影院| 日韩人妻无码一区二区三区99| 人妻无码αv中文字幕久久琪琪布| 最新中文字幕AV无码不卡| 丰满熟妇乱又伦在线无码视频| 亚洲日韩av无码| 久久久久亚洲AV无码专区首JN| 婷婷综合久久中文字幕| 亚洲中文字幕无码久久2017| 毛片一区二区三区无码| 2021国产毛片无码视频| 麻豆亚洲AV永久无码精品久久|