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

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

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

    隨筆-204  評論-149  文章-0  trackbacks-0
    關于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;    //編譯能通過,但是執行就報錯。

    : const char str[] = "abc";        abc存儲在堆棧中;
    : const char *str = "abc";         abc存儲在靜態存儲區;
    準確的說,上面兩個“abc"都是存儲在靜態存儲區,即常量區。常量區是可讀不可寫的。所以任何試圖對常量區進行寫的操作都是非法的,當然了,這也不是一定不可寫的,你可以采取某種渠道改變常量區的內存屬性,比如改變pe相關節的屬性就可以對常量區進行讀寫,當然了,這個目前可以忽略。。。
    那么為什么str[] = "abc";        可以寫呢?答案就在str[] = "abc";會有一個額外的拷貝過程,即把常量區的 "abc"拷貝到棧內存去,所以就可以寫了。
    posted on 2009-08-05 16:57 Frank_Fang 閱讀(520) 評論(0)  編輯  收藏 所屬分類: C++編程
    主站蜘蛛池模板: a视频免费在线观看| 在线观看永久免费| 久久久久亚洲AV无码麻豆| 成熟女人牲交片免费观看视频| 白白色免费在线视频| 久久久久亚洲精品影视| 四虎影院在线免费播放| 成人电影在线免费观看| 亚洲日韩一区精品射精| 亚洲成av人在线视| 永久在线毛片免费观看| 国产99视频精品免费专区| 亚洲精品欧美综合四区| 亚洲嫩模在线观看| 四虎免费久久影院| 免费精品国偷自产在线在线| 和老外3p爽粗大免费视频| 自拍偷区亚洲国内自拍| 亚洲va国产va天堂va久久| 日本黄色免费观看| 1000部禁片黄的免费看| 中文字幕看片在线a免费| 亚洲七久久之综合七久久| 亚洲午夜精品久久久久久人妖| 免费国产在线观看老王影院| 3344永久在线观看视频免费首页| 一级毛片试看60分钟免费播放| 亚洲日韩精品国产3区| 91亚洲va在线天线va天堂va国产| 国产av无码专区亚洲国产精品| 成人毛片免费在线观看| 欧洲一级毛片免费| 无码日韩精品一区二区三区免费| 一级做a爰片久久免费| 亚洲JLZZJLZZ少妇| 亚洲一区二区三区深夜天堂| 亚洲精品成人av在线| 亚洲日本一区二区三区在线| 免费永久看黄在线观看app| 最近2019中文字幕免费看最新 | 色片在线免费观看|