<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 閱讀(528) 評論(0)  編輯  收藏 所屬分類: C++編程
    主站蜘蛛池模板: 国产成人免费高清激情明星| 国产精品亚洲精品日韩已满| 麻豆成人久久精品二区三区免费| 爱情岛亚洲论坛在线观看| 亚洲高清在线视频| 亚洲第一页日韩专区| 国产精品视频永久免费播放| 免费国产黄网站在线观看可以下载 | 免费一级毛片一级毛片aa| 美丽的姑娘免费观看在线播放| 国产精品免费αv视频| 精品在线免费视频| 亚洲国产精品成人AV在线| 99久久精品国产亚洲| 亚洲av永久无码精品网站| 亚洲午夜日韩高清一区| 四虎影院永久免费观看| 免费黄色网址入口| 久久精品亚洲福利| 国产乱子伦精品免费女| 日韩精品成人无码专区免费| 免费视频爱爱太爽了| 91热久久免费精品99| 亚欧免费一级毛片| 久久精品乱子伦免费| a级片免费在线观看| 中文字幕成人免费高清在线 | 人人狠狠综合久久亚洲高清| 一级黄色免费网站| 国产精品亚洲а∨无码播放不卡 | 成人免费无码大片A毛片抽搐 | 亚洲一级特黄特黄的大片| 亚洲精品资源在线| 亚洲丝袜美腿视频| 亚洲综合婷婷久久| 日本久久久久亚洲中字幕| 亚洲成人免费在线| 亚洲电影一区二区| 亚洲成A∨人片在线观看不卡 | 亚洲日本一线产区和二线产区对比| 亚洲乱码在线观看|