• <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>
            隨筆 - 4, 文章 - 0, 評論 - 4, 引用 - 0
            數(shù)據(jù)加載中……

            迷糊的多維數(shù)組的地址

             

                    為什么要寫這個?因為這個東西有點混亂,至少我第一次接觸的時候是這樣的。或許以后還會,所以記下來需要的人一起看吧。

                    直接上主題,我做事就是很直接,當然也會很啰嗦,下面你將會一并體驗到。

            int count[2][3] = {{1,2,3},{4,5,6}};

            count //數(shù)組count[0][0]的地址。

            count+1//數(shù)組count[0][0]行數(shù)的偏移量為1的地址,即count[1][0]的地址。

            *(count+1)//等效于count+1。

            *(count+1)+1//count[0][0]行數(shù)偏移量為1,列數(shù)偏移量為1的地址,即count[1][1]的地址。

            **(count+1)//count[1][0]的值。注意這里是2個“*”。

            *(*(count+1)+1)//count[1][1]的值,這里也可以寫成**(count+1)+1,結果都是一樣的,反正就是要2個“*”。說到這里有的人可能就覺得奇怪了,上面不是說了“*(count+1)//等效于count+1”那*(*(count+1)+1)能不能寫成*((count+1)+1)呢?答案是很肯定的:不能。為什么呢?我的理解是:如果單純地表示行地址的時候有無“*”都無所謂,反正是一行的地址,同時也是一行的第一列元素的地址。*(*(count+1)+1)含義是先取得第1行的地址,然后再在第1行內偏移1列后,取得地址所存儲的值4。如果寫成*((count+1)+1)則含義變成:行數(shù)偏移1后再偏移1后的地址。
                   這里有點饒頭,多看幾次就會明白了。當然按照我的理解來看也是有一定風險的,因為我可能理解錯了。不過這些結果我都試驗過的,絕對不會錯的。

            *(count+1)[1]//count[1][1]的值。首先用*(count+1)取得行地址,然后用[1]直接獲取這個地址中第1號元素的值。這個表達式等效于*(count[1]+1),同時也等效于*(*(count+1)+1)。~~撲通~~已經(jīng)有人徹底暈倒了。這里的“*(count+1)”,“count[1]”都是為了有效地進行行地址定位,因為只有先找到行地址才能進列定位嘛!

            最后總結:

            1.    如果你是想獲得多維數(shù)組中一行的地址則使用不使用“*”都無所謂。前提是沒有“[]”出現(xiàn)。

            2.    如果你是想獲得多維數(shù)組中元素的地址則首先得確定好此元素的行地址(使用“*”,比如*(count+1)這樣就確定了是第1行的地址),然后再進行列偏移。

            3.    如果你是想獲得多維數(shù)組中元素的值,則可以在地址之前加“*”一般整個表達式是2個“*”,因為確定某一行的時候的那個“*”是必不可少的。當然也可以使用帶有“[]”的方式,這個方式里面需一個“*”和一個“[]”就可以獲得數(shù)組的值。如果你說使用count[1][1]這樣的方式不是更好么?你說的一點都沒錯,不過我這里主要討論的是與地址相關的內容。不過要順帶說一下如果使用雙“[]”的情況下表達式前加不加“*”都是無所謂的。

            再一次總結:

            1. 多維數(shù)組的地址中,重點就是進行行地址定位,有2種方式,第一種:加“*”eg:*(count+1)。第二種:使用“[]”eg:count[1]。
                   這里有一個問題啊,* count[1]是地址還是值啊?如果你的回答是地址那請再回頭看一下最后總結第一條。這里的* count[1]表示的是一個值,因為這條語句的含義是取count[1]的值,可是count[1]只是一個地址,只進行了行定位,偏要它交出一個值出來,只好把列排名第一的第0個元素丟了出來,即count[1][0]。

            學生朋友應付考試的總結:
            1. 單個“*”或單個“[]”可以獲得地址;雙“*”或雙“[]”或一個“*”加上一個“[]”可以獲得數(shù)組值。這樣的規(guī)律是不是很簡潔明了?

             錯誤不足之處還請大家多多指正!謝謝!

            posted on 2009-01-05 02:25 掃地僧 閱讀(476) 評論(3)  編輯 收藏 引用 所屬分類: C++

            評論

            # re: 迷糊的多維數(shù)組的地址  回復  更多評論   

            int number[10][20][30];
            --------------------------
            typedef int ten_ints[10];
            typedef ten_ints twenty_ten_ints[20];
            typedef twenty_ten_ints thirty_twenty_ten_ints[30];
            thirty_twenty_ten_ints number;
            2009-01-06 01:24 | 陳梓瀚(vczh)

            # re: 迷糊的多維數(shù)組的地址  回復  更多評論   

            交個朋友吧,樓主是安豐的吧

            技術論壇:
            http://www.erpside.cn/forum-44-1.html
            http://www.erpside.cn/forum-29-1.html

            qq:676710849,你qq加起來費勁,加我的吧
            2009-01-11 03:50 | daocaoren

            # re: 迷糊的多維數(shù)組的地址  回復  更多評論   

            @daocaoren
            ok!
            2009-01-11 17:41 | 掃地僧
            91精品国产综合久久婷婷| 国产免费久久精品99久久| 亚洲国产精品成人久久蜜臀| 久久精品国产一区二区 | 欧美一级久久久久久久大| 色偷偷91久久综合噜噜噜噜| 一本色道久久HEZYO无码| 一级做a爰片久久毛片16| 久久人人爽人人爽人人片av麻烦 | 久久丝袜精品中文字幕| 久久综合久久综合亚洲| 久久99中文字幕久久| 亚洲欧美久久久久9999 | 性欧美大战久久久久久久久 | 久久99精品久久久久久齐齐| 亚洲精品无码久久久久久| 久久久久久亚洲精品不卡 | 蜜桃麻豆www久久国产精品| 2021精品国产综合久久| 少妇熟女久久综合网色欲| 精品免费久久久久国产一区| 国产精品久久久久无码av| 久久亚洲精品成人无码网站| 精品久久综合1区2区3区激情| AAA级久久久精品无码片| 亚洲精品乱码久久久久久蜜桃不卡 | 激情久久久久久久久久| 99国产精品久久久久久久成人热| 亚洲国产精品无码久久九九 | 国产精品久久久久影院嫩草| 国产精品久久久久久五月尺| 久久精品无码一区二区三区日韩 | 亚洲精品乱码久久久久久久久久久久 | 欧美日韩精品久久久久| 一本大道久久东京热无码AV| 午夜精品久久久内射近拍高清| 精品久久久久久无码人妻热| 国产精品成人无码久久久久久| 亚洲国产成人久久综合碰碰动漫3d | 亚洲中文字幕久久精品无码APP| 精品国产日韩久久亚洲|