• <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>

            朗朗空間

            我知道并不是 所有鳥兒都飛翔

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              16 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(1)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            2.字符數(shù)組和指針
            我們可以使用指針符號(hào)建立字符串。
            如:

            const char *about[] = "about me!";

            這個(gè)聲明和下面聲明的作用幾乎相同:

            char about[] = "about me!"

            那么,這兩種方式有什么不同呢?
            數(shù)組形式在計(jì)算機(jī)中被分配一個(gè)有10個(gè)元素的數(shù)組。每個(gè)元素都被初始化為相應(yīng)的字符。最后那個(gè)字符為\0。
            通常,被引用的字符串存儲(chǔ)在可執(zhí)行文件的數(shù)據(jù)段部分;
            當(dāng)程序被加載到內(nèi)存中時(shí),字符串也被加載到內(nèi)存中。被引用的字符串被稱為位于靜態(tài)存儲(chǔ)區(qū)。
            但是在程序開始運(yùn)行后才為數(shù)組分配存儲(chǔ)空間。這個(gè)時(shí)候,把被引用的字符串復(fù)制到數(shù)組中。
            此后,編譯器會(huì)把數(shù)組名about看作是數(shù)組首元素地址&about[0]的同義詞。
            但是,數(shù)組形式的about是個(gè)地址常量,您不能更改about,因?yàn)橹馕吨臄?shù)組存儲(chǔ)的位置(地址)。
            可以用運(yùn)算符aoubt+1來標(biāo)識(shí)下一個(gè)元素,但是不能使用++about。
            增量運(yùn)算符只能用在變量名前,不能用在常量名前。

            指針形式*about也在靜態(tài)區(qū)預(yù)留10個(gè)元素的空間。
            此外,一旦程序開始執(zhí)行,還需要為指針變量另外預(yù)留一個(gè)存儲(chǔ)位置。
            這個(gè)變量初始化時(shí)指向字符串的第一個(gè)字符,但是它的值是可以改變的。
            因此,可以對它使用增量運(yùn)算符。例如,++about將指向第二個(gè)字符b。

            3.數(shù)組和指針的差別

            char heart[] = "I love cuicui!";
            char *head[] = "I love cuicui!"

            主要的差別在于數(shù)組名heart是個(gè)常量,而指針head則是個(gè)變量。
            首先,兩者都可以使用數(shù)組符號(hào)

            for (i = 0; i < 6; i++)
            {
                
            putchar (heart[i]);
            }
            putchar ('\n');
            for (i = 0; i < 6; i++)
            {
                
            putchar (head[i]);
            }
            putchar ('\n');

            其次,兩者都可以使用指針加法

            for (i = 0; i < 6; i++)
            {
                
            putchar (*(heart + i));
            }
            putchar ('\n');
            for (i = 0; i < 6; i++)
            {
                
            putchar (*(hed + i));
            }
            putchar ('\n');

            但是,只有指針可以使用增量運(yùn)算符

            while (*(head) != '\0')
            {
                
            putchar (*(head++));
            }

            最后,不能使用以下語句

            //第一種情況
            heart = head//非法,常量的值不能改變
            //第二種情況
            head[1] = 'k';  //非法,C的標(biāo)準(zhǔn)不應(yīng)該允許這樣做,但少量編譯器混淆了這個(gè)概念

            為了防止第二種情況發(fā)生,建議的做法是在初始化一個(gè)指向字符串文字的指針時(shí)使用const修飾符:

            const char * p1 = "Klingon";
            posted on 2008-05-04 16:21 聶元朗 閱讀(323) 評論(0)  編輯 收藏 引用 所屬分類: C語言學(xué)習(xí)筆記
            亚洲精品国产综合久久一线| 99久久这里只有精品| 尹人香蕉久久99天天拍| 香蕉久久av一区二区三区| 亚洲国产精品婷婷久久| A级毛片无码久久精品免费| 亚洲综合精品香蕉久久网97| 久久天天躁夜夜躁狠狠| 国产一区二区精品久久凹凸| 久久久久久国产精品无码下载| 93精91精品国产综合久久香蕉 | 亚洲色欲久久久综合网| 99久久精品这里只有精品 | 99久久精品免费看国产一区二区三区 | 国产精品久久99| 99久久精品免费看国产一区二区三区 | 精品久久人人爽天天玩人人妻| 伊人久久大香线焦综合四虎| 伊人久久大香线蕉综合影院首页| 99久久婷婷国产一区二区| 99久久人妻无码精品系列| 久久婷婷五月综合国产尤物app| 91久久九九无码成人网站| 一本色道久久88加勒比—综合| 国产精品久久国产精品99盘| avtt天堂网久久精品| 久久精品成人国产午夜| 久久精品国产久精国产| www.久久热| 亚洲午夜久久久精品影院 | 1000部精品久久久久久久久| 色婷婷综合久久久久中文 | 久久久久久久久波多野高潮| 人妻无码αv中文字幕久久琪琪布| 亚洲七七久久精品中文国产| 久久这里只有精品首页| 影音先锋女人AV鲁色资源网久久| 久久久久久精品无码人妻| 久久亚洲日韩精品一区二区三区| 久久久噜噜噜www成人网| 99久久精品毛片免费播放|