• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              29 隨筆 :: 14 文章 :: 17 評論 :: 0 Trackbacks

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


            posted on 2007-03-12 10:11 Xiao.Zhu 閱讀(173) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
            久久se这里只有精品| 亚洲中文字幕无码久久综合网| 亚洲美日韩Av中文字幕无码久久久妻妇| 久久国产欧美日韩精品| 亚洲国产精品一区二区久久hs| 久久国产综合精品五月天| 国产福利电影一区二区三区,免费久久久久久久精| 99精品国产综合久久久久五月天| 久久这里有精品| 人人妻久久人人澡人人爽人人精品| 日日狠狠久久偷偷色综合96蜜桃| 国产成人久久精品二区三区| 精品久久人人妻人人做精品| 久久99精品久久久久久齐齐| 国产福利电影一区二区三区,免费久久久久久久精 | 天堂久久天堂AV色综合| 久久天天躁狠狠躁夜夜avapp | 国内精品九九久久久精品| 九九久久自然熟的香蕉图片| 91精品国产综合久久精品| 91精品国产色综久久| 精品人妻伦九区久久AAA片69| 久久一本综合| 久久亚洲私人国产精品| 狠狠色丁香久久综合婷婷| 精品无码人妻久久久久久| 2021国产精品久久精品| 91精品国产色综合久久| 久久久久香蕉视频| 日韩精品久久无码人妻中文字幕| 国产精品一区二区久久国产| 久久97久久97精品免视看秋霞| 一级女性全黄久久生活片免费| 久久丫精品国产亚洲av| 久久99精品免费一区二区| 狠狠精品久久久无码中文字幕| 久久国产精品成人免费| 久久精品中文无码资源站| 国产2021久久精品| 久久久久久久久无码精品亚洲日韩| 激情五月综合综合久久69|