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

            Xiao.Zhu C++

            Xiao.Zhu C++

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              29 隨筆 :: 14 文章 :: 17 評(píng)論 :: 0 Trackbacks

            指針可以加上或減去一個(gè)整數(shù)。指針的這種運(yùn)算的意義和通常的數(shù)值的加減運(yùn)算的意義是不一樣的。例如: ?
            例二:?
            1。chara[20];?
            2。int*ptr=a;?
            ...?
            ...?
            3。ptr++;?
            在 上例中,指針ptr的類型是int*,它指向的類型是int,它被初始化為指向整形變量a。接下來(lái)的第3句中,指針ptr被加了1,編譯器是這樣處理的: 它把指針ptr的值加上了sizeof(int),在32位程序中,是被加上了4。由于地址是用字節(jié)做單位的,故ptr所指向的地址由原來(lái)的變量a的地址 向高地址方向增加了4個(gè)字節(jié)。?
            由于char類型的長(zhǎng)度是一個(gè)字節(jié),所以,原來(lái)ptr是指向數(shù)組a的第0號(hào)單元開(kāi)始的四個(gè)字節(jié),此時(shí)指向了數(shù)組a中從第4號(hào)單元開(kāi)始的四個(gè)字節(jié)。?
            我們可以用一個(gè)指針和一個(gè)循環(huán)來(lái)遍歷一個(gè)數(shù)組,看例子:
            例三:?
            intarray[20];?
            int*ptr=array;?
            ...?
            //此處略去為整型數(shù)組賦值的代碼。?
            ...?
            for(i=0;i<20;i++)?
            {?
            (*ptr)++;?
            ptr++;?
            }?
            這個(gè)例子將整型數(shù)組中各個(gè)單元的值加1。由于每次循環(huán)都將指針ptr加1,所以每次循環(huán)都能訪問(wèn)數(shù)組的下一個(gè)單元。?
            再看例子:?
            例四:?
            1。chara[20];?
            2。int*ptr=a;?
            ...?
            ...?
            3。ptr+=5;?
            在 這個(gè)例子中,ptr被加上了5,編譯器是這樣處理的:將指針ptr的值加上5乘sizeof(int),在32位程序中就是加上了5乘4=20。由于地址 的單位是字節(jié),故現(xiàn)在的ptr所指向的地址比起加5后的ptr所指向的地址來(lái)說(shuō),向高地址方向移動(dòng)了20個(gè)字節(jié)。在這個(gè)例子中,沒(méi)加5前的ptr指向數(shù)組 a的第0號(hào)單元開(kāi)始的四個(gè)字節(jié),加5后,ptr已經(jīng)指向了數(shù)組a的合法范圍之外了。雖然這種情況在應(yīng)用上會(huì)出問(wèn)題,但在語(yǔ)法上卻是可以的。這也體現(xiàn)出了指 針的靈活性。?
            如果上例中,ptr是被減去5,那么處理過(guò)程大同小異,只不過(guò)ptr的值是被減去5乘sizeof(int),新的ptr指向的地址將比原來(lái)的ptr所指向的地址向低地址方向移動(dòng)了20個(gè)字節(jié)。??
            總結(jié)一下,一個(gè)指針ptrold加上一個(gè)整數(shù)n后,結(jié)果是一個(gè)新的指針ptrnew,?
            ptrnew 的類型和ptrold的類型相同,ptrnew所指向的類型和ptrold所指向的類型也相同。ptrnew的值將比ptrold的值增加了n乘 sizeof(ptrold所指向的類型)個(gè)字節(jié)。就是說(shuō),ptrnew所指向的內(nèi)存區(qū)將比ptrold所指向的內(nèi)存區(qū)向高地址方向移動(dòng)了n乘 sizeof(ptrold所指向的類型)個(gè)字節(jié)。?
            一個(gè)指針ptrold減去一個(gè)整數(shù)n后,結(jié)果是一個(gè)新的指針ptrnew,ptrnew的類 型和ptrold的類型相同,ptrnew所指向的類型和ptrold所指向的類型也相同。ptrnew的值將比ptrold的值減少了n乘sizeof (ptrold所指向的類型)個(gè)字節(jié),就是說(shuō),ptrnew所指向的內(nèi)存區(qū)將比ptrold所指向的內(nèi)存區(qū)向低地址方向移動(dòng)了n乘sizeof (ptrold所指向的類型)個(gè)字節(jié)。?


            posted on 2007-03-12 10:11 Xiao.Zhu 閱讀(182) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++
            91精品国产色综久久| 亚洲精品乱码久久久久久蜜桃不卡| 久久久久无码精品国产不卡| 久久精品视频网| 亚洲国产成人久久综合野外 | 国产精品狼人久久久久影院| 国产精品久久久久久久久软件| 国产亚洲美女精品久久久久狼| 久久天天躁狠狠躁夜夜不卡| 久久久久亚洲av无码专区| 无码8090精品久久一区| 2021久久国自产拍精品| 亚洲熟妇无码另类久久久| 国产激情久久久久影院小草| 久久99热只有频精品8| yy6080久久| 久久综合久久鬼色| 国产免费福利体检区久久| 久久人人爽爽爽人久久久| 伊人久久无码精品中文字幕| 国内精品久久久久久久涩爱 | 久久丫精品国产亚洲av不卡| 伊人久久精品影院| 欧美久久久久久精选9999| 夜夜亚洲天天久久| 一级做a爱片久久毛片| 久久精品九九亚洲精品天堂 | 亚洲乱码精品久久久久..| 一级做a爰片久久毛片毛片| 精品国产综合区久久久久久| 潮喷大喷水系列无码久久精品| 亚洲狠狠婷婷综合久久久久| 久久99精品国产麻豆宅宅| 亚洲中文久久精品无码| 精品熟女少妇AV免费久久 | 久久er国产精品免费观看8| 久久国产精品-久久精品| 99久久久国产精品免费无卡顿 | 97r久久精品国产99国产精| 伊人久久大香线蕉AV色婷婷色| 久久久久国产精品人妻|