• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Sivan's blog

            用代碼說話……
            posts - 14, comments - 2, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            指針與字符常量

            Posted on 2010-09-24 16:15 Sivan 閱讀(339) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++
            先看一個(gè)代碼
             1#include "stdafx.h"
             2#include <iostream>
             3using namespace std;
             4
             5int main()
             6{
             7    char* pch = "aaa";
             8    pch[2= 'b';
             9    cout<<pch<<endl;
            10    return 0;
            11}
            運(yùn)行這幾行代碼,程序會(huì)崩潰。將指針pch指向“aaa”,而“aaa”是個(gè)字符串常量,后對(duì)pch[2]進(jìn)行修改,賦值操作不合法,程序崩潰。
            c++中內(nèi)存分為5個(gè)區(qū)域:堆、棧、自由存儲(chǔ)區(qū)、全局/靜態(tài)存儲(chǔ)區(qū)和常量存儲(chǔ)區(qū)。
            堆、棧不說啦,自由存儲(chǔ)區(qū)與堆類似,不過使用malloc分配free釋放,全局/靜態(tài)存儲(chǔ)區(qū)存儲(chǔ)全局變量和static變量,常量存儲(chǔ)區(qū)存放的是常量,不允許修改,“aaa”就存儲(chǔ)在這個(gè)位置。
            將代碼改為如下情況:
            char str[] = "aaa";
            char* pch = str;
            pch[
            2= 'b';
            cout
            <<pch<<endl;
            此時(shí)“aaa”為棧分配,是數(shù)組中的存儲(chǔ)內(nèi)容,所以可以修改。
            精品久久久久久久| 亚洲午夜福利精品久久| 久久国产精品免费| 成人妇女免费播放久久久| 无码人妻久久一区二区三区蜜桃| 久久99精品久久久久久动态图| 久久伊人影视| 久久久WWW免费人成精品| 久久亚洲欧美日本精品| 国内精品久久久久影院优| 奇米影视7777久久精品| 无码国产69精品久久久久网站| 一级a性色生活片久久无| 久久涩综合| 尹人香蕉久久99天天拍| 一本久久免费视频| 亚洲国产成人久久综合一区77| 久久精品国产一区二区三区 | 无码久久精品国产亚洲Av影片 | 久久久老熟女一区二区三区| 色综合久久久久综合体桃花网 | 国产午夜免费高清久久影院| 久久精品国产亚洲av高清漫画 | 久久se精品一区精品二区国产| 99久久综合国产精品二区| 久久精品成人一区二区三区| 久久涩综合| 77777亚洲午夜久久多喷| 97久久精品无码一区二区天美| 国产精品久久99| 久久亚洲精品无码播放| 亚洲精品无码久久久久久| 国产精品久久久久…| 女同久久| 久久99国产精一区二区三区| 欧美久久综合性欧美| 无码久久精品国产亚洲Av影片| 久久最新免费视频| 91久久精品91久久性色| 久久无码一区二区三区少妇| 东方aⅴ免费观看久久av|