<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++編程
    主站蜘蛛池模板: 中国xxxxx高清免费看视频| 中文字幕在线免费看线人| 一个人看www在线高清免费看| 亚洲AV无码国产在丝袜线观看| 国产一级一毛免费黄片| 亚洲日本一区二区三区在线| 插鸡网站在线播放免费观看| 亚洲欧洲日产国码av系列天堂| 中文字幕免费播放| 久久精品夜色国产亚洲av| 男人j进入女人j内部免费网站| 亚洲狠狠综合久久| 16女性下面扒开无遮挡免费| 亚洲国产成人在线视频| 无人影院手机版在线观看免费 | 亚洲国产高清在线精品一区| 91福利视频免费观看| 亚洲同性男gay网站在线观看| a级毛片无码免费真人| 日韩色日韩视频亚洲网站| 亚洲欧洲自拍拍偷精品 美利坚| 日韩av无码免费播放| 亚洲色成人网一二三区| 美女被免费视频网站a国产| 好湿好大好紧好爽免费视频| 在线观看亚洲AV日韩AV| 免费黄网在线观看| 免费看一级毛片在线观看精品视频| 亚洲裸男gv网站| 老汉精品免费AV在线播放| 亚洲视频在线观看2018| 免费大黄网站在线观看| 中国毛片免费观看| 亚洲人成毛片线播放| 亚洲精品成a人在线观看| 一区二区三区在线免费看| 亚洲老熟女五十路老熟女bbw| 中文字幕第13亚洲另类| 免费黄色福利视频| 国产精品永久免费视频| 亚洲人成激情在线播放|