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

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

            最后總結(jié):

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

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

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

            再一次總結(jié):

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

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

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

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

            評論

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

            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ù)組的地址  回復(fù)  更多評論   

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

            技術(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ù)組的地址  回復(fù)  更多評論   

            @daocaoren
            ok!
            2009-01-11 17:41 | 掃地僧
            久久亚洲国产中v天仙www| 2019久久久高清456| 日本道色综合久久影院| 99久久精品免费看国产| 久久久久亚洲av毛片大| 亚洲精品午夜国产va久久| 久久午夜伦鲁片免费无码| 狠狠狠色丁香婷婷综合久久俺| 久久高潮一级毛片免费| av色综合久久天堂av色综合在| 日本久久久精品中文字幕| 国产精品99久久久精品无码| 久久不射电影网| 一本一本久久aa综合精品| 久久久久久国产精品美女| 国产亚洲综合久久系列| 中文精品99久久国产| 久久综合综合久久97色| 香蕉久久夜色精品升级完成| 久久久久久A亚洲欧洲AV冫| 国产精品久久久久天天影视| 国产69精品久久久久久人妻精品| 久久久久九九精品影院| 久久国产精品99久久久久久老狼| 亚洲AV无码1区2区久久| 久久久精品久久久久影院| 久久无码人妻精品一区二区三区 | 国产一区二区三精品久久久无广告 | 精品久久久久久无码中文字幕一区| 久久97久久97精品免视看秋霞| 国产精品久久久久久福利69堂| 亚洲va中文字幕无码久久不卡 | 色偷偷888欧美精品久久久| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 丰满少妇人妻久久久久久| 久久久久久精品免费看SSS| 色婷婷噜噜久久国产精品12p| 欧美久久久久久午夜精品| 国产伊人久久| 色婷婷狠狠久久综合五月| 久久天天躁狠狠躁夜夜avapp |