<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++編程
    主站蜘蛛池模板: 老司机免费午夜精品视频| 亚洲最大天堂无码精品区| 国产伦精品一区二区免费| 亚洲阿v天堂在线2017免费| 亚洲精品9999久久久久无码| 国产成人午夜精品免费视频| 亚洲精品视频免费看| 国产高清免费视频| 日韩亚洲国产综合高清| 成人免费a级毛片| 亚洲中文字幕精品久久| 最近的中文字幕大全免费版| 亚洲精品GV天堂无码男同| 国产精品视_精品国产免费| 四虎影视永久在线精品免费 | 18禁成年无码免费网站无遮挡| 亚洲网站视频在线观看| 免费观看无遮挡www的视频| 国产精品高清视亚洲一区二区| 国产高清免费的视频| 一区二区3区免费视频| 亚洲成a人片在线观看日本| 中文字幕在线免费观看| 亚洲香蕉在线观看| 亚洲国产V高清在线观看| 国产情侣久久久久aⅴ免费| 亚洲成人福利在线| 国产人成免费视频| 永久在线观看免费视频| 亚洲国产成人资源在线软件| 国产成人一区二区三区免费视频| 国产又黄又爽胸又大免费视频 | 1000部无遮挡拍拍拍免费视频观看| 亚洲人成综合网站7777香蕉| 免费一级成人毛片| 老汉精品免费AV在线播放| 亚洲日韩亚洲另类激情文学| 国产亚洲精品资在线| 永久在线免费观看| 美国免费高清一级毛片| 久久夜色精品国产噜噜噜亚洲AV|