<kbd id="daqct"></kbd>

  • <nav id="daqct"></nav>
    <wbr id="daqct"><pre id="daqct"></pre></wbr>
    <wbr id="daqct"></wbr>
    <form id="daqct"><th id="daqct"></th></form>
    更多課程 選擇中心

    C/C++培訓
    達內IT學院

    400-111-8989

    C++中const與指針知識小結

    • 發布:C++培訓
    • 來源:學習筆記
    • 時間:2017-05-05 14:42

    在c/c++中,指針本身就是一個難點,再加與const的結合,常會產生許多讓人費解的地方,在這里做個小結。

    1.定義const對象
    constintbuffsize=512;
    因為常量定義后就不能修改,所以定義時必須初始化.
    consti,j=0;//error,i沒有初始化

    2.const對象默認為文件的局部變量
    //file1.cc
    externconstintbufsize=512;//定義并初始化
    //file2.cc
    externconstintbufsize;//聲明
    for(inti=0;i!=bufsize;++i)
    {
    //...
    }
    非const變量默認為extern,要使const變量能夠在其它的文件中訪問,必有顯示指定為extern.

    3.指向const對象的指針
    constint*p;
    這個p是一個指向int類型const對象的指針,const限定了指針p所指向的類型,而并非p本身。也就是說p本身并不是const。在定義時不需要對它進行初始化,還可以給p重新賦值,使其指向另一個const對象。但不能通過p修改所指向對象的值。
    示例1:inta=0;p=&a;//可以。
    示例2:*p=20;//不可以。
    結論:這種指向const對象的指針只是限制不能修改p指向對象的數值,而不是限制p指向什么對象。
    把一個const對象的地址賦給一個不是指向const對象的指針也是不行的。
    示例3:constintb=10;
    int*p2=&b;//error
    constint*p3=&b;//ok
    結論:因為變量b有const修飾,不能被修改。但指針p2是一個普通的指針,可以修改指向對象的值,兩種聲明矛盾,所以不合法。而指向const對象的指針不允許修改指針指向對象的數值,所以這種方式合法。
    不能使用void*指針保存const對象的地址,而必須使用constvoid*類型保存const對象的地址。
    constinta=6;
    void*p=&a;//error
    const*cp=&a;//ok
    intconst*p;
    c++規定,const關鍵字放在類型或變量名之前是等價的.
    constintn=5;//sameasbelow
    intconstm=10;
    constint*p;//sameasbelowconst(int)*p
    intconst*q;//(int)const*p

    4.const指針
    intc=20;
    int*constp4=&c;
    指針p4稱為const指針。它和指向const對象的指針恰好相反,它不能夠修改所指向對象,但卻能夠修改指向對象的數值。另外,這種指針在聲明時必須初始化。


    5.指向const對象的const指針
    constintd=30;
    constint*constdp=&d;
    指針dp既不能修改指向的對象,也不能修改只想對象的值。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:如何學習C語言?資深軟件工程師C語言學習經歷分享
    下一篇:C語言與linux是的關系,Linux下的C語言開發入門篇

    C語言創建windows窗口實例

    C++回調函數是什么?

    C++ shared_ptr和動態數組

    C語言有哪些關鍵詞,C語言44個關鍵詞大全

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    欧美三级片,白洁外传,第四色播日韩AV第一页,啪啪免费观看大全av 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>