<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-204  評(píng)論-149  文章-0  trackbacks-0
    關(guān)于const_cast    
        const char str[] = "abc";
        char * s = const_cast<char *>(str);
        s[0] = 'A';
     
        cout<<s<<endl;    //輸出Abc
    但是這樣就不行了:
       const char *str = "abc";
        char * s = const_cast<char *>(str);
        s[0] = 'A';
     
        cout<<s<<endl;    //編譯能通過,但是執(zhí)行就報(bào)錯(cuò)。

    : const char str[] = "abc";        abc存儲(chǔ)在堆棧中;
    : const char *str = "abc";         abc存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū);
    準(zhǔn)確的說,上面兩個(gè)“abc"都是存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū),即常量區(qū)。常量區(qū)是可讀不可寫的。所以任何試圖對(duì)常量區(qū)進(jìn)行寫的操作都是非法的,當(dāng)然了,這也不是一定不可寫的,你可以采取某種渠道改變常量區(qū)的內(nèi)存屬性,比如改變pe相關(guān)節(jié)的屬性就可以對(duì)常量區(qū)進(jìn)行讀寫,當(dāng)然了,這個(gè)目前可以忽略。。。
    那么為什么str[] = "abc";        可以寫呢?答案就在str[] = "abc";會(huì)有一個(gè)額外的拷貝過程,即把常量區(qū)的 "abc"拷貝到棧內(nèi)存去,所以就可以寫了。
    posted on 2009-08-05 16:57 Frank_Fang 閱讀(528) 評(píng)論(0)  編輯  收藏 所屬分類: C++編程
    主站蜘蛛池模板: 亚洲色成人中文字幕网站| www国产亚洲精品久久久| 黄页视频在线观看免费| 动漫黄网站免费永久在线观看 | 国产精品无码免费专区午夜| 国产禁女女网站免费看| 亚洲国产成人久久精品大牛影视| 国内精品免费视频自在线| 亚洲色大18成人网站WWW在线播放| 国产成人免费爽爽爽视频| 国产成人亚洲综合网站不卡| 一个人免费观看日本www视频| 亚洲精品无码专区久久同性男| 一级中文字幕免费乱码专区 | 免费精品无码AV片在线观看| 亚洲精品福利视频| 久久WWW免费人成一看片| 亚洲精品国产福利在线观看| 欧美a级在线现免费观看| 亚洲JIZZJIZZ妇女| 亚洲高清国产拍精品青青草原 | 日本亚洲视频在线| 18pao国产成视频永久免费| 亚洲一级毛片免费观看| 蜜桃精品免费久久久久影院| 一出一进一爽一粗一大视频免费的| 亚洲色婷婷综合久久| 亚洲免费视频播放| 亚洲精品无码中文久久字幕| 国产精品亚洲精品日韩已方| 免费黄网站在线看| 亚洲熟妇成人精品一区| 亚洲中文字幕日产乱码高清app| 182tv免费视视频线路一二三 | 亚洲中文无码av永久| 国产又大又黑又粗免费视频| 在线观看免费视频一区| 亚洲性色高清完整版在线观看| 国产精品视频免费一区二区三区| 99热在线日韩精品免费| 丁香婷婷亚洲六月综合色|