• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    指針和數(shù)組

    2008-01-01 00:00:00王立柱
    計(jì)算機(jī)教育 2008年5期

    通過空間的標(biāo)識(shí)符來處理該空間數(shù)據(jù)的方式稱為直接引用。處理簡(jiǎn)單的數(shù)據(jù)時(shí),直接引用的形式簡(jiǎn)單、容易實(shí)現(xiàn),但用來處理大量數(shù)據(jù)卻不簡(jiǎn)單。例如,存儲(chǔ)1萬個(gè)整數(shù)需要1萬個(gè)名稱,傳遞1萬個(gè)數(shù)據(jù)需要1萬次賦值,這都是既繁瑣又低效的操作。而且1萬個(gè)整數(shù)一般還會(huì)是一個(gè)序列,數(shù)據(jù)之間具有邏輯上的前后順序,那么按邏輯上的順序去處理這些數(shù)據(jù)就需要先按邏輯的順序存儲(chǔ)這些數(shù)據(jù)。既要表示數(shù)據(jù),又要表示數(shù)據(jù)之間的關(guān)系,這是直接引用方式難以實(shí)現(xiàn)的。

    為了解決這個(gè)問題,我們參考機(jī)器語言中的要素——地址。機(jī)器指令由操作碼和操作數(shù)組成,操作數(shù)一般是數(shù)據(jù)的地址。在機(jī)器語言程序中,地址是處理和數(shù)據(jù)之間的媒介。在機(jī)器語言程序設(shè)計(jì)中,一個(gè)重要的步驟是為數(shù)組安排空間,以確定它們的地址。空間相鄰,地址就容易計(jì)算。按照這種邏輯可以得出一個(gè)很自然的設(shè)計(jì)方案:一組類型相同、邏輯上具有前后關(guān)系的數(shù)據(jù)存儲(chǔ)在一組前后相鄰的空間,這樣可以通過一個(gè)數(shù)據(jù)的地址簡(jiǎn)單地計(jì)算出其余數(shù)據(jù)空間的地址,然后通過空間地址(而不是名稱)去處理數(shù)據(jù),我們稱這種訪問方式為間接引用。

    要實(shí)現(xiàn)這種設(shè)計(jì),就需要把這組相鄰的數(shù)據(jù)空間作為一個(gè)整體以及相應(yīng)的地址都引入C語言類型。

    1指針常量

    1.1指針的類型

    變量的名稱經(jīng)過編譯之后就在系統(tǒng)內(nèi)部“消失”了,留下了地址和類型,地址是該變量空間的起始地址,類型是該變量的類型(見圖1中的表)。類型將指示編譯器怎樣操作特定地址上的內(nèi)存區(qū)域:該區(qū)域包含多少連續(xù)的字節(jié),數(shù)據(jù)存儲(chǔ)的格式,以及可以實(shí)施哪些基本操作,我們把這個(gè)類型稱為地址的基類型。通過地址來操作數(shù)據(jù)空間的方式稱為間接引用。以表1為例,地址0x12ff78的基類型為整型,通過該地址去間接引用時(shí),系統(tǒng)將連續(xù)4個(gè)字節(jié)0x12ff78 ~0x12ff7b當(dāng)作整型變量空間。地址0x12ff70的基類型是雙浮點(diǎn)型,編譯器將0x12ff70~0x12ff77的8個(gè)字節(jié)視為雙浮點(diǎn)型空間。

    同樣的地址,由于地址的基類型不同,編譯器對(duì)該地址上的空間的解釋也不同,或者說編譯器將其看作不同類型的數(shù)據(jù)空間。例如,上面的地址0x12ff78,如果地址的基類型是單浮點(diǎn)型,那么間接引用的結(jié)果是,0x12ff78 ~0x12ff7b為單浮點(diǎn)型空間。

    為了實(shí)現(xiàn)我們的設(shè)計(jì),需要首先把地址這個(gè)硬件操作機(jī)制中的數(shù)據(jù)引入C語言。而在C語言中,數(shù)據(jù)要有類型。類型是數(shù)據(jù)的“身份”,決定著數(shù)據(jù)存儲(chǔ)空間的大小、存儲(chǔ)格式和對(duì)數(shù)據(jù)可以實(shí)施的基本操作。從存儲(chǔ)空間的大小和存儲(chǔ)格式來說,地址相當(dāng)于無符號(hào)整型數(shù),即按無符號(hào)整型格式存儲(chǔ),而且在32位操作系統(tǒng)中需要占用4個(gè)字節(jié)。但是地址的操作與無符號(hào)整型數(shù)的不同,它與間接引用的數(shù)據(jù)有關(guān),因此,為把地址這個(gè)數(shù)據(jù)引入C,需要為它定義新類型。新類型應(yīng)該具有什么樣的標(biāo)識(shí)符?這就要分析地址的特點(diǎn)。地址關(guān)聯(lián)著兩個(gè)存儲(chǔ)空間,以圖1的地址0x12ff7c為例:一個(gè)是地址本身作為常量存儲(chǔ)的空間;另一個(gè)是通過該地址間接引用的數(shù)據(jù)空間,即我們形象地用箭頭指向的整型變量n的空間。根據(jù)這個(gè)處理特點(diǎn),把地址本身的類型稱為指針類型或指針型,指針指向的數(shù)據(jù)的類型稱為指針的數(shù)據(jù)類型或指針型的基類型或指針的基類型。因此,指針是一個(gè)復(fù)合類型。

    圖1 變量與地址

    當(dāng)我們說一個(gè)指針是某種類型或某種類型的指針,指的是該指針的基類型,或該指針指向的數(shù)據(jù)的類型。例如一個(gè)指針是整型的,或一個(gè)整型指針,是指該指針的基類型是整型的,或指針指向的數(shù)據(jù)是整型的。

    指針是一個(gè)復(fù)合類型,因此它的標(biāo)識(shí)符也是復(fù)合的,由表示指針類型的符號(hào)*和表示指針基類型的符號(hào)聯(lián)合組成。例如,整型指針用int*表示,雙浮點(diǎn)型指針用double*表示。*代表指針類型,int或double表示指針的基類型。例如圖1的地址0x12ff78,地址的基類型為整型,被引入C語言之后,用字面值常量來表示便是(int*)0x12ff78,我們稱之為指針型字面值常量或指針字面值常量。

    1.2指針的基本操作

    現(xiàn)在我們需要把地址的間接引用操作引入C語言作為指針型的基本操作:在指針前加間接引用運(yùn)算符,也稱解引用運(yùn)算符*,所得表達(dá)式作為該指針指向的空間的標(biāo)識(shí)符,這種由指針運(yùn)算構(gòu)成的數(shù)據(jù)空間表達(dá)式稱為間接引用表達(dá)式或解引用表達(dá)式。圖1的表代表了下面的等價(jià)式:

    x=*(double*)0x12ff70

    m=*(int*)0x12ff78

    n=*(int*)0x12ff7c

    我們可以做個(gè)實(shí)驗(yàn)來證實(shí)這個(gè)等價(jià)式。首先通過輸出語句確定變量的地址:

    printf(\"%x,%x,%x\\",n,m,x);//輸出變量n、m和x的地址

    假設(shè)輸出結(jié)果是12ff7c,12ff78,12ff70

    (如果不是,那么以輸出的結(jié)果為準(zhǔn))。然后通過指針常量間接修改變量n、m和x的值:

    *(int*)0x12ff7c=5;//相當(dāng)于n=5;

    *(int*)0x12ff78=*(int*)0x12ff7c;//相當(dāng)于m=n;

    *(double*)0x12ff70=3.1415;//相當(dāng)于x=3.1415;

    printf(\"n=%d,m=%d,x=%f\\",n,m,x);//輸出變量n、m和x的值,檢驗(yàn)結(jié)果

    在我們的設(shè)計(jì)方案中,由一個(gè)數(shù)據(jù)空間地址計(jì)算出其余的數(shù)據(jù)空間地址是主要的操作,現(xiàn)在我們將它設(shè)計(jì)為指針類型的基本操作:指針加減一個(gè)整數(shù)。假設(shè)一組雙浮點(diǎn)型數(shù)5.5、6.6、7.7、8.8、9.9,它們的存儲(chǔ)空間按地址從小到大依次相鄰,地址依次為0x120000、0x120008、0x120010、0x120018、0x120020,用指針字面值常量來表示便是(int*)0x120000、(int*)0x120008、(int*)0x120010、(int*)0x120018、(int*)0x120020。如果用指針加減一個(gè)整數(shù)的基本運(yùn)算來表示,那么指向5.5的存儲(chǔ)空間的指針(int*)0x120000加1應(yīng)該是指向6.6的存儲(chǔ)空間的指針(int*)0x120008,加2應(yīng)該是指向7.7的存儲(chǔ)空間的指針(int*)0x120010,依次類推(見圖2)。反過來,指向9.9的存儲(chǔ)空間的指針(int*)0x120020減1應(yīng)該是指向8.8的存儲(chǔ)空間的指針(int*)0x120018,減2應(yīng)該是指向7.7的存儲(chǔ)空間的指針(int*)0x120010,依次類推。

    概括地說,一個(gè)指針加上(或減去)一個(gè)整數(shù)所得到的指針,其地址會(huì)增加(或減少)指針基類型大小(字節(jié)數(shù))的該整數(shù)倍,即指針的算術(shù)運(yùn)算單位是該指針基類型的大小,或者說是指針指向的數(shù)據(jù)類型的大小。

    圖2 指針?biāo)阈g(shù)運(yùn)算

    對(duì)指針做加減整數(shù)的運(yùn)算是沒有限制的,但是對(duì)指針間接引用的空間是有限制的,它必須是系統(tǒng)分配的、可以由指針間接引用的空間,否則就可能破壞系統(tǒng)空間的數(shù)據(jù)。這個(gè)限制使我們不能隨便使用一個(gè)指針字面值常量進(jìn)行間接引用運(yùn)算。例如下面的語句:

    *(int*)0x12ff7c=6;

    只有在0x12ff7c確是一個(gè)已經(jīng)定義的整型數(shù)據(jù)空間地址的時(shí)候才是合理的。

    取址運(yùn)算實(shí)質(zhì)上是指針的基本操作。例如,有下面的等價(jià)式:

    x=*(double*)0x12ff70

    對(duì)上面的等價(jià)式左右實(shí)施取址運(yùn)算,有等價(jià)式:

    x=*(double*)0x12ff70=(double*)0x12ff70

    對(duì)上面的等價(jià)式左右實(shí)施間接引用運(yùn)算*,有等價(jià)式:

    *x=*(double*)0x12ff70=x

    上面的等式說明取址運(yùn)算和間接引用運(yùn)算*互為逆運(yùn)算。

    指針的值是無符號(hào)整型數(shù),可以實(shí)施邏輯運(yùn)算和關(guān)系運(yùn)算。

    綜上所述,間接引用*、取址、加減一個(gè)整數(shù)、兩個(gè)指針相減、關(guān)系運(yùn)算和邏輯運(yùn)算是指針的基本操作。

    兩個(gè)指針能夠相加或相乘嗎?不行,因?yàn)樗鼰o意義。一種類型應(yīng)該包含哪些基本操作,這取決于我們?cè)O(shè)計(jì)這種數(shù)據(jù)類型的目的或用途。

    2數(shù)組類型

    我們的設(shè)計(jì)是,一組類型相同、邏輯上有前后關(guān)系的數(shù)據(jù),存儲(chǔ)在物理上前后相鄰的變量空間,使得通過一個(gè)數(shù)據(jù)空間的地址可以計(jì)算出其余的數(shù)據(jù)空間地址,然后通過空間地址(而不是空間名稱)去間接訪問數(shù)據(jù)(空間)。前面介紹過把地址作為指針引入C語言,現(xiàn)在我們把物理上前后相鄰的一組變量作為一個(gè)整體引入C語言。我們把這個(gè)整體稱為數(shù)組類型變量,簡(jiǎn)稱數(shù)組,把每一個(gè)作為成員的變量稱為數(shù)組元素,數(shù)組元素空間按地址從小到大依次相鄰。數(shù)組元素的個(gè)數(shù)稱為數(shù)組長(zhǎng)度或容量。

    根據(jù)我們的設(shè)計(jì),對(duì)數(shù)組元素的引用是間接的,這需要知道指向第一個(gè)數(shù)組元素的指針。而編譯器對(duì)空間的分配是隨條件變化的,指向第一個(gè)數(shù)組元素的指針不能是字面值常量,只能是符號(hào)指針常量,即用符號(hào)表示的指針常量,這個(gè)符號(hào)由數(shù)組名兼任,稱為(一維)數(shù)組指針,數(shù)組元素類型就是數(shù)組指針的基類型。

    數(shù)組名既是數(shù)組變量的標(biāo)識(shí)符,又是指向第一個(gè)數(shù)組元素的指針常量,具體代表什么要根據(jù)上下文來確定。

    定義一個(gè)數(shù)組需要指出數(shù)組名、數(shù)組長(zhǎng)度和數(shù)組元素類型(數(shù)組指針基類型)。數(shù)組的定義格式為:

    類型標(biāo)識(shí)符數(shù)組名[整型常量表達(dá)式];

    其中類型標(biāo)識(shí)符表示數(shù)組元素類型,整型常量表達(dá)式表示數(shù)組長(zhǎng)度即容量。數(shù)組類型沒有獨(dú)立的標(biāo)識(shí)符,因?yàn)閿?shù)組實(shí)際上是一個(gè)復(fù)合類型,數(shù)組的存儲(chǔ)格式、存儲(chǔ)空間大小和基本操作由其數(shù)組元素類型和數(shù)組長(zhǎng)度決定,所以數(shù)組類型由數(shù)組元素類型和數(shù)組長(zhǎng)度聯(lián)合表示。當(dāng)我們說某種類型的數(shù)組或數(shù)組是某種類型時(shí),是指該數(shù)組的數(shù)組元素是某種類型的。例如,定義一個(gè)長(zhǎng)度為5、數(shù)組名是d、數(shù)組元素類型為雙浮點(diǎn)型的數(shù)組,即長(zhǎng)度為5、數(shù)組名是d的雙浮點(diǎn)型數(shù)組:

    double d[5];

    //長(zhǎng)度為5,數(shù)組名是d的雙浮點(diǎn)型數(shù)組

    數(shù)組名d既表示數(shù)組(變量),又表示指向第一個(gè)數(shù)組元素的指針常量,具體表示什么呢?若實(shí)施sizeof運(yùn)算,則d代表數(shù)組,結(jié)果是:

    sizeof(d)=5*sizeof(double)=5*8=40

    //5個(gè)數(shù)組元素空間大小之和

    還可以由表達(dá)式sizeof(d)/sizeof(do-

    uble)計(jì)算出整型數(shù)組d的容量即長(zhǎng)度。

    若實(shí)施算術(shù)運(yùn)算和間接引用運(yùn)算,則d代表數(shù)組指針。根據(jù)指針的性質(zhì),d,d+1,d+2,d+3,d+4依次是指向第1至第5個(gè)數(shù)組元素的指針,實(shí)施間接引用運(yùn)算之后,*d,*(d+1),*(d+2),*(d+3),*(d+4)依次是第1至第5個(gè)數(shù)組元素的間接引用表達(dá)式。不過,一般采用符合數(shù)學(xué)習(xí)慣的下標(biāo)表達(dá)式或索引表達(dá)式:d[0],d[1],d[2],d[3],d[4],其中“[]”是下標(biāo)運(yùn)算符或索引運(yùn)算符,其中的整數(shù)稱為數(shù)組元素下標(biāo)或索引。數(shù)組元素的間接運(yùn)算表達(dá)式和下標(biāo)表達(dá)式是一回事(見圖3)。

    圖3 數(shù)組的綜合特征

    長(zhǎng)度為n的數(shù)組,下標(biāo)為0~n-1,超過下標(biāo)范圍的索引訪問是非法的,不管編譯器對(duì)超越下標(biāo)范圍的訪問如何處理,我們都要自覺地遵守這個(gè)實(shí)際上屬于我們自己的設(shè)計(jì)。例如,對(duì)上面定義的數(shù)組d,下標(biāo)表達(dá)式d[5]和d[-2]是非法的。這不是一種規(guī)定,而是數(shù)組和數(shù)組指針作為一個(gè)整體的表現(xiàn):數(shù)組元素沒有名稱,它要由數(shù)組指針間接引用,它的索引訪問或下標(biāo)訪問的實(shí)質(zhì)就是數(shù)組指針的間接引用運(yùn)算(例如d[2]=*(d+2)),這是數(shù)組對(duì)數(shù)組指針的依賴;而數(shù)組指針是其間接引用范圍由數(shù)組范圍決定的指針。

    一個(gè)變量可以看作是長(zhǎng)度為1的數(shù)組。例如:

    int n=5;

    n等價(jià)于長(zhǎng)度為1的整型數(shù)組指針,因此(n)[0]與n等價(jià):

    (n)[0]=*(n)=*n=n

    數(shù)組是一個(gè)復(fù)合類型(見圖3),包含數(shù)組類型、數(shù)組指針類型和數(shù)組元素類型。數(shù)組的類型由數(shù)組元素的類型和數(shù)組長(zhǎng)度復(fù)合表示,例如長(zhǎng)度為5的雙浮點(diǎn)型數(shù)組的類型是double[5]。數(shù)組指針的基類型是數(shù)組元素類型,數(shù)組指針的間接引用運(yùn)算只有在該數(shù)組范圍內(nèi)實(shí)施才有意義,這是指針對(duì)數(shù)組的依賴,而數(shù)組的元素沒有名稱,對(duì)數(shù)組元素的引用依賴指針,這是數(shù)組對(duì)指針的依賴。數(shù)組指針和數(shù)組共用一個(gè)名稱隱含了這種整體關(guān)系。d作為數(shù)組指針和d的值相同,但它們不是同一類型的指針,d等價(jià)于d[0],其基類型等價(jià)于數(shù)組元素d[0]的類型double,所以數(shù)組指針d的類型double*,算術(shù)運(yùn)算單位是8,而d的基類型是數(shù)組d的類型doulbe[5],所以d的類型是doulbe(*)[5],運(yùn)算單位是40。

    3 指針變量

    數(shù)組元素沒有名稱,只能依賴數(shù)組指針的間接引用。數(shù)組指針是打開數(shù)組元素空間的“鑰匙”。如果把數(shù)組指針傳給同類型的指針變量,那么該指針變量就可以和數(shù)組指針“共享”一個(gè)數(shù)組空間,我們稱此為地址傳遞。一個(gè)指針,不論什么類型,在32位機(jī)上都只占4個(gè)字節(jié),所以復(fù)制數(shù)組指針比復(fù)制數(shù)組中的數(shù)據(jù)更有效率。指針變量的定義格式為:

    類型標(biāo)識(shí)符* 變量名;

    以圖4為例,把數(shù)組指針a賦給指針變量p,就有了等價(jià)式:

    p[i]=a[i]

    但是,指針變量p與數(shù)組指針a不等價(jià),因?yàn)榍罢呤侵羔樧兞?,后者是指針常量。指針變量p與數(shù)組a也不等價(jià),下面的等式可以說明:

    sizeof(p)=4 //指針變量空間大小

    sizeof(a)=20//數(shù)組空間大小

    而且指針p與a值不同,基類型也不同,p是p空間地址,是指向指針空間p的指針,類型是int**,而a是數(shù)組空間地址,是指向數(shù)組空間的指針,類型是int(*)[5]。

    因?yàn)閿?shù)組名稱既表示數(shù)組指針又表示數(shù)組,所以要從數(shù)組名稱中取出數(shù)組指針賦給指針變量,就需要隱式類型轉(zhuǎn)換,通常稱之為decay。

    圖4 指針變量

    如果傳遞數(shù)組指針的目的是傳遞數(shù)組的值,那么應(yīng)該把數(shù)組指針傳遞給同類型指針變量。例如,整型數(shù)組指針應(yīng)該傳給整型指針變量,雙浮點(diǎn)型數(shù)組指針應(yīng)該傳給雙浮點(diǎn)型指針變量。下面我們以反例來說明這樣做的意義。

    int a[5]={10,15,20,25,30};

    //整型數(shù)組

    double* pd;

    //雙浮點(diǎn)型指針變量

    pd=(double*)a;

    //整型數(shù)組指針經(jīng)強(qiáng)制轉(zhuǎn)換之后賦給雙浮點(diǎn)型指針變量

    在32位機(jī)上,雙浮點(diǎn)型指針pd的算術(shù)運(yùn)算單位是8個(gè)字節(jié),而整型指針常量a的運(yùn)算單位是4個(gè)字節(jié),因此,pd+i的值和a+i的值不等,從而pd[i]和a[i]也不等。又例:

    int a[5]={ 10,15,20,25,30};

    //整型數(shù)組

    float* pf;

    //單浮點(diǎn)型指針變量

    pf=(float*)a;

    //整型數(shù)組指針經(jīng)強(qiáng)制轉(zhuǎn)換后賦給單浮點(diǎn)型指針變量

    在32位機(jī)上,單浮點(diǎn)型指針pf的算術(shù)運(yùn)算單位是4個(gè)字節(jié),整型指針常量a的運(yùn)算單位也是4個(gè)字節(jié),因此,pf+i的值和a+i的值相等,但是編譯器對(duì)它們所指向的數(shù)據(jù)類型解釋不同:pf[i]是單浮點(diǎn)型,a[i]是整型。具體地說,a[0]以普通整型格式存儲(chǔ)著10,而pf[0]按單浮點(diǎn)型格式“解讀”時(shí),其中存儲(chǔ)的不是10;而且對(duì)a[0]可以實(shí)施求余運(yùn)算,對(duì)pf[0]不能實(shí)施該運(yùn)算。

    如果傳遞數(shù)組指針的目的是“讓出”數(shù)據(jù)處理之后而“空閑下來”的數(shù)組空間,那么可以把該數(shù)組指針傳遞給不同類型的指針變量,但是需要強(qiáng)制類型轉(zhuǎn)換。以圖5為例,把長(zhǎng)度為2的雙符點(diǎn)型數(shù)組指針d傳遞給整型指針變量pi,通過pi可以訪問長(zhǎng)度為4的整型數(shù)組空間(按類型大小計(jì)算,長(zhǎng)度為2的雙浮點(diǎn)型數(shù)組空間可以用做長(zhǎng)度為4的整型數(shù)組空間)。雙浮點(diǎn)型數(shù)組指針d和整型指針變量pi都指向同一個(gè)空間,我們用哪一種類型的指針去間接引用,這個(gè)空間就是哪一種類型的數(shù)組空間,而且空間中的數(shù)據(jù)是最后存儲(chǔ)的數(shù)據(jù)。例如,在語句int *pi=(int*)d執(zhí)行之后,pi[0]=17執(zhí)行之前,雖然指針d和pi都指向一個(gè)空間,但是d[0]和d[1]中的雙浮點(diǎn)型數(shù)2.125和3.625還存在,執(zhí)行了語句pi[0]=17和pi[1]=29以后,d[0]中的雙浮點(diǎn)型數(shù)2.125已經(jīng)不存在,改為兩個(gè)整型數(shù)17和29,但是d[1]的值3.625還存在。

    圖5 由不同類型數(shù)據(jù)共享的數(shù)組空間

    一個(gè)變量可以看作是一個(gè)長(zhǎng)度為1的數(shù)組,因此指向變量的指針可以看作是指向長(zhǎng)度為1的數(shù)組的指針(見圖6)。

    pn[0]=*pn =(n)[0] =n

    圖6 指向變量的指針

    4二維數(shù)組類型

    一個(gè)序列存儲(chǔ)在一維數(shù)組中,其元素在邏輯上的前后位置由數(shù)組元素的下標(biāo)來表示??墒侨绾未鎯?chǔ)一個(gè)矩陣呢?矩陣的元素在邏輯上有兩個(gè)位置,行的前后位置和列的前后位置。為此需要引入二維數(shù)組。

    二維數(shù)組是數(shù)組元素為一維數(shù)組(稱行一維數(shù)組)的一維數(shù)組。因?yàn)橐痪S數(shù)組的元素類型是相同的,所以一個(gè)二維數(shù)組的行一維數(shù)組的類型相同,長(zhǎng)度相同,元素的類型也相同。行一維數(shù)組的個(gè)數(shù)稱為二維數(shù)組的行數(shù),行一維數(shù)組的長(zhǎng)度稱為二維數(shù)組的列數(shù)。行一維數(shù)組也稱為二維數(shù)組行元素,行一維數(shù)組元素也稱二維數(shù)組元素。二維數(shù)組定義格式為:

    類型標(biāo)識(shí)符數(shù)組名[行數(shù)][列數(shù)];

    例如,定義一個(gè)4行3列的二維整型數(shù)組:

    int a[4][3];

    二維數(shù)組作為特殊的一維數(shù)組,數(shù)組長(zhǎng)度為4,其數(shù)組元素為:

    a[0],a[1],a[2],a[3]

    它們分別是長(zhǎng)度為3的行一維整型數(shù)組,類型都是int[3]。行一維數(shù)組的元素的類型是整型,而且依次為:

    a[0][0]a[0][1]a[0][2]

    //行一維數(shù)組a[0]的數(shù)組元素

    a[1][0]a[1][1]a[1][2]

    //行一維數(shù)組a[1]的數(shù)組元素

    a[2][0]a[2][1]a[2][2]

    //行一維數(shù)組a[2]的數(shù)組元素

    a[3][0]a[3][1]a[3][2]

    //行一維數(shù)組a[3]的數(shù)組元素

    與一維數(shù)組類似,作為特殊的一維數(shù)組,數(shù)組名a既表示數(shù)組(用斜體a表示以示區(qū)別),又表示數(shù)組指針。當(dāng)a表示數(shù)組時(shí),它的類型是由元素類型即行一維數(shù)組類型int[3]和數(shù)組長(zhǎng)度即行數(shù)也即行一維數(shù)組個(gè)數(shù)4聯(lián)合構(gòu)成,int[4][3]。而且

    sizeof(a)=∑sizeof(a[i]) =4*12=48

    當(dāng)a表述數(shù)組指針時(shí),有等式:

    a=a[0]

    a[0]作為行一維數(shù)組表達(dá)式,既表示行一維數(shù)組類型(用斜體a[0]表示以示區(qū)別),又表示行一維數(shù)組指針。在上面等式的取址運(yùn)算a[0]中,a[0]表示行一維數(shù)組,因此指針a的基類型是行一維數(shù)組類型int[3],算術(shù)運(yùn)算單位是12,即一個(gè)行一維數(shù)組大小,有等式

    a+i=a[i](i=0~3)

    因此被稱為二維數(shù)組指針,類型用int (*)[3]表示。二維數(shù)組a的其他綜合特性見表1和圖7

    圖7二維整型數(shù)組a[4][3](陰影部分表示指針常量)

    一個(gè)長(zhǎng)度為n的一維數(shù)組可以看作是1行n列二維數(shù)組。例如:

    double d[5]={1,2,3,4,5};

    d相當(dāng)于1行5列二維雙浮點(diǎn)型數(shù)組指針(見圖8)。

    反之,一個(gè)m行n列二維數(shù)組可以看作長(zhǎng)度為m*n的一維數(shù)組。

    圖8長(zhǎng)度為5的一維數(shù)組d可以看作1行5列二維數(shù)組

    5二維指針變量

    與二維數(shù)組指針常量對(duì)應(yīng)的是二維指針變量,定義格式為:

    類型指示符 (*指針變量名)[列數(shù)];

    舉例說明:

    int (*p)[3];

    //二維指針變量p

    int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,

    11,12}};

    //二維整型數(shù)組

    p=a;

    //二維數(shù)組指針傳遞

    這時(shí)的二維指針變量p等價(jià)于二維數(shù)組指針a:

    p+i=a+i(i=0,1,2,3)

    p[i]=a[i](i=0,1,2,3)

    p[i][j]=a[i][j](i=0,1,2,3,j=0,1,2)

    但是不等價(jià)于二維數(shù)組a:下面的等式可以說明:

    sizeof(p)=4//p表示指針變量

    sizeof(a)=48//a表示二維數(shù)組

    圖9 二維指針變量和二維數(shù)組

    6二維數(shù)組和(一維)指針

    一個(gè)m行n列二維數(shù)組,可以看作是長(zhǎng)度為m*n的一維數(shù)組。例如:

    int a[4][3]={{1,2,3},{4,5,6},{7,8,9},

    {10,11,12}};

    a[0]是指向行一維數(shù)組元素a[0][0]的指針常量,它等價(jià)于長(zhǎng)度為12的一維整型數(shù)組指針,該一維數(shù)組的12個(gè)元素依次為:

    a[0][0]a[0][1]a[0][2]

    a[0][3]a[0][4]a[0][5]

    a[0][6]a[0][7]a[0][8]

    a[0][9]a[0][10]a[0][11]

    二維數(shù)組指針a的行下標(biāo)(假設(shè)用i表示)增加1,地址值增加12,一維數(shù)組指針a[0]的下標(biāo)增加1,地址值4,于是有等式:

    a[0][i*3+j]=a[i][j]

    于是,可以把二維數(shù)組的行一維數(shù)組的地址傳給(一維)指針變量:

    int*p=a[0];//int *p=*a; 或int *p=a[0][0];

    于是有等式((見圖10)):

    p[i*3+j]=a[0][i*3+j]=a[i][j]

    圖10 二維數(shù)組和(一維)指針變量

    7指針數(shù)組和指針的指針

    所謂一維指針數(shù)組,就是數(shù)組元素為(一維)指針變量的一維數(shù)組。例如:

    char* a[5];

    a是長(zhǎng)度為5的字符型指針數(shù)組,數(shù)組元素a[0]、a[1]、a[2]、a[3]、a[4]都是字符型指針變量,它們各自可以指向一維字符數(shù)組,特別是字符串:

    a[0]=\"File\";a[1]=\"Edit\";

    a[2]=\"Compile\";a[3]=\"Run\";

    a[4]=\"Tools\";

    指針數(shù)組可以初始化:

    char* a[5]={\"File\",\"Edit\",\"Compile\",

    \"Run\",\"Tools\"};

    char* a[]={\"File\",\"Edit\",\"Compile\",

    \"Run\",\"Tools\"};

    數(shù)組指針a類型應(yīng)該由“*”和其基類型即數(shù)組元素char*聯(lián)合構(gòu)成,所以是char**,被稱為指針的指針常量:

    char** pa;//指針的指針變量

    pa=a;//接受字符型指針數(shù)組的指針a的值(見圖11)

    char** pa=a;

    圖11 字符指針數(shù)組和字符指針的指針

    二維數(shù)組是數(shù)組元素為指針常量的指針數(shù)組,反之,指針數(shù)組是行一維數(shù)組是指針變量的二維數(shù)組。它們?cè)谙旅娴那樾蜗陆y(tǒng)一。假設(shè)

    int a[4][3];//二維數(shù)組

    int* p[4];//指針數(shù)組

    令指針數(shù)組的指針元素分別指向二維數(shù)組的行一維數(shù)組

    p[0]=a[0];

    p[1]=a[1];

    p[2]=a[2];

    p[3]=a[3];

    則有等式:

    p[i][j]=a[i][j]

    8小結(jié)

    機(jī)器語言發(fā)展到C語言,作為機(jī)器語言要素的地址就要發(fā)展為C語言的要素,這就是指針類型。指針是C的類型,就應(yīng)該和整型、字符型等語言內(nèi)置類型一樣,具有自己的常量,因此,指針字面值常量的引入是不可避免的。而處理的需要又使指針一出現(xiàn),就和數(shù)組構(gòu)成一個(gè)整體,它們都以對(duì)方的存在作為自己存在的前提:指針的基類型是它可以指向的數(shù)組的元素類型,指針間接引用范圍取決于它實(shí)際指向的數(shù)組大小;一個(gè)指針常量就是一個(gè)數(shù)組指針;一個(gè)指針變量,當(dāng)它指向一個(gè)數(shù)組時(shí),與該數(shù)組指針等價(jià)。這是指針對(duì)數(shù)組的依賴。反之,數(shù)組的元素沒有名稱,它的表示依賴指針;數(shù)組指針是指向該數(shù)組的指針常量。這是數(shù)組對(duì)指針的依賴。一個(gè)變量等價(jià)于一個(gè)長(zhǎng)度為1的數(shù)組,指向一個(gè)變量的指針看作是指向一個(gè)長(zhǎng)度為1的數(shù)組的指針,這實(shí)際上依然是指針和數(shù)組的相互依賴、相互作用的整體性關(guān)系。但是這還不能證明指針和數(shù)組定義是科學(xué)的,還需要通過二維指針和二維數(shù)組的定義來檢驗(yàn)。例如,二維數(shù)組必須是一維數(shù)組的推廣,就像二重積分是一重積分的推廣一樣,而且它們?cè)谝欢l件下可以互相轉(zhuǎn)化,例如,長(zhǎng)度為n的一維數(shù)組等價(jià)于1行n列的二維數(shù)組,m行n列的二維數(shù)組等價(jià)于長(zhǎng)度為m*n的一維數(shù)組。

    国产精品一区二区三区四区免费观看| 国产精品伦人一区二区| a 毛片基地| 中文欧美无线码| 久久久久久九九精品二区国产| 中文字幕av成人在线电影| 亚洲精品自拍成人| av免费观看日本| av在线老鸭窝| 一级毛片黄色毛片免费观看视频| 国产av一区二区精品久久 | 精品国产乱码久久久久久小说| 日韩不卡一区二区三区视频在线| 亚洲不卡免费看| 五月开心婷婷网| 国产色爽女视频免费观看| 久久久久久久久久人人人人人人| 中文字幕久久专区| 中文欧美无线码| 亚洲va在线va天堂va国产| 黑丝袜美女国产一区| 久热久热在线精品观看| av在线播放精品| 天堂中文最新版在线下载| 欧美xxⅹ黑人| 精品亚洲成国产av| 欧美 日韩 精品 国产| 青春草国产在线视频| 亚洲欧美一区二区三区国产| 天美传媒精品一区二区| 十八禁网站网址无遮挡 | 只有这里有精品99| 一区二区三区乱码不卡18| av在线播放精品| 91午夜精品亚洲一区二区三区| 极品少妇高潮喷水抽搐| tube8黄色片| 国产人妻一区二区三区在| xxx大片免费视频| 我要看日韩黄色一级片| 日本黄大片高清| 国产成人午夜福利电影在线观看| 天天躁日日操中文字幕| 精品人妻视频免费看| 亚洲欧美日韩东京热| 99热这里只有精品一区| 日韩 亚洲 欧美在线| 女性生殖器流出的白浆| 黄色日韩在线| 性色av一级| 建设人人有责人人尽责人人享有的 | 日本黄色日本黄色录像| 寂寞人妻少妇视频99o| 男人爽女人下面视频在线观看| 亚洲国产色片| 九色成人免费人妻av| 国产成人freesex在线| 日日啪夜夜爽| 国产深夜福利视频在线观看| av黄色大香蕉| 97热精品久久久久久| 欧美日韩视频精品一区| 偷拍熟女少妇极品色| 精品国产三级普通话版| 国产精品国产av在线观看| 久久人妻熟女aⅴ| 亚洲精品色激情综合| 欧美日韩综合久久久久久| 成人午夜精彩视频在线观看| 亚洲人成网站在线播| 激情五月婷婷亚洲| videossex国产| 男女免费视频国产| 日本wwww免费看| 美女主播在线视频| 免费看光身美女| 春色校园在线视频观看| 亚洲av中文av极速乱| 欧美人与善性xxx| 国产淫语在线视频| 亚洲人成网站高清观看| 国产成人免费无遮挡视频| 又黄又爽又刺激的免费视频.| 激情 狠狠 欧美| 亚洲av.av天堂| 日本-黄色视频高清免费观看| 人妻 亚洲 视频| 一个人看的www免费观看视频| 欧美3d第一页| 国模一区二区三区四区视频| 伦理电影免费视频| 亚洲图色成人| av线在线观看网站| 免费观看a级毛片全部| 尾随美女入室| 精品视频人人做人人爽| 国产亚洲5aaaaa淫片| 国产乱人视频| av在线蜜桃| 亚洲性久久影院| 纯流量卡能插随身wifi吗| 午夜福利在线在线| 国产熟女欧美一区二区| 国产视频内射| 久久 成人 亚洲| 国产精品人妻久久久久久| 99久久综合免费| 成人亚洲欧美一区二区av| 国产精品国产av在线观看| 精品国产乱码久久久久久小说| 女性被躁到高潮视频| 欧美最新免费一区二区三区| 久久精品熟女亚洲av麻豆精品| 久久 成人 亚洲| 国产成人一区二区在线| 老女人水多毛片| 国产高清三级在线| 韩国av在线不卡| 高清不卡的av网站| 老司机影院毛片| 狂野欧美激情性bbbbbb| 国产欧美日韩精品一区二区| 香蕉精品网在线| 成人免费观看视频高清| 国产免费一区二区三区四区乱码| 日本黄色日本黄色录像| 免费观看性生交大片5| 天堂中文最新版在线下载| 久久久久久久大尺度免费视频| 欧美精品人与动牲交sv欧美| 在现免费观看毛片| 久久人人爽人人爽人人片va| 国产精品国产三级国产av玫瑰| 丰满人妻一区二区三区视频av| 国产精品人妻久久久影院| 婷婷色综合大香蕉| 2022亚洲国产成人精品| 国产精品无大码| 亚洲欧洲国产日韩| 国产女主播在线喷水免费视频网站| 国产一区二区三区av在线| 日本黄色片子视频| 美女cb高潮喷水在线观看| 视频中文字幕在线观看| 国产成人a区在线观看| 国产91av在线免费观看| 亚洲av不卡在线观看| 韩国高清视频一区二区三区| 国产精品福利在线免费观看| 只有这里有精品99| 亚洲精品日韩在线中文字幕| 国产无遮挡羞羞视频在线观看| 天天躁夜夜躁狠狠久久av| 国产av精品麻豆| 午夜激情福利司机影院| 欧美少妇被猛烈插入视频| 亚洲欧美成人精品一区二区| 国产成人freesex在线| 亚洲人成网站高清观看| 久久婷婷青草| 久久国产亚洲av麻豆专区| 亚洲精品日韩av片在线观看| av免费观看日本| 精品一区二区免费观看| 亚洲av.av天堂| 免费不卡的大黄色大毛片视频在线观看| 亚洲无线观看免费| 日韩欧美一区视频在线观看 | 五月伊人婷婷丁香| 国产白丝娇喘喷水9色精品| 亚洲久久久国产精品| 精品国产三级普通话版| 亚洲天堂av无毛| 高清视频免费观看一区二区| av不卡在线播放| 午夜福利高清视频| 成人免费观看视频高清| 乱系列少妇在线播放| 免费在线观看成人毛片| 蜜桃亚洲精品一区二区三区| 亚洲精品久久午夜乱码| 十八禁网站网址无遮挡 | 久久综合国产亚洲精品| 国产黄片视频在线免费观看| 激情 狠狠 欧美| 91精品国产国语对白视频| 永久网站在线| 亚洲精品乱码久久久久久按摩| 欧美日本视频| 日韩欧美一区视频在线观看 | 免费大片18禁| 久久久久久久久大av| 日韩强制内射视频| 视频中文字幕在线观看| 亚洲人成网站高清观看| 日韩成人伦理影院| 97超碰精品成人国产| 亚洲精品乱码久久久久久按摩| 自拍欧美九色日韩亚洲蝌蚪91 | 亚洲国产精品成人久久小说| 亚洲欧美精品自产自拍| 亚洲精品久久久久久婷婷小说| av国产免费在线观看| 91aial.com中文字幕在线观看| 91午夜精品亚洲一区二区三区| 亚洲成人中文字幕在线播放| 久久人人爽av亚洲精品天堂 | 一边亲一边摸免费视频| 麻豆国产97在线/欧美| 成人无遮挡网站| 五月伊人婷婷丁香| 亚洲美女视频黄频| 国产亚洲午夜精品一区二区久久| 一个人免费看片子| 一级二级三级毛片免费看| 日韩伦理黄色片| 国产精品99久久久久久久久| 亚洲国产高清在线一区二区三| 欧美亚洲 丝袜 人妻 在线| 成人一区二区视频在线观看| 国产欧美亚洲国产| 晚上一个人看的免费电影| 又黄又爽又刺激的免费视频.| 一级毛片aaaaaa免费看小| 亚洲性久久影院| 99视频精品全部免费 在线| 免费人妻精品一区二区三区视频| 亚洲成色77777| av女优亚洲男人天堂| 伊人久久国产一区二区| 亚洲人与动物交配视频| 久久av网站| 亚洲,欧美,日韩| 欧美日韩精品成人综合77777| av国产精品久久久久影院| 日韩强制内射视频| 亚洲精品国产av蜜桃| 欧美高清性xxxxhd video| 国产av精品麻豆| 黑丝袜美女国产一区| 女人久久www免费人成看片| 人妻一区二区av| 80岁老熟妇乱子伦牲交| 成年女人在线观看亚洲视频| 国产精品人妻久久久久久| 免费高清在线观看视频在线观看| 边亲边吃奶的免费视频| 国产国拍精品亚洲av在线观看| 欧美一区二区亚洲| 香蕉精品网在线| 精品一区在线观看国产| 肉色欧美久久久久久久蜜桃| 在线天堂最新版资源| 国产亚洲5aaaaa淫片| 精品一区二区免费观看| 18禁在线无遮挡免费观看视频| 在线亚洲精品国产二区图片欧美 | 天天躁夜夜躁狠狠久久av| 国产男人的电影天堂91| 亚洲精品日本国产第一区| 视频中文字幕在线观看| 欧美zozozo另类| 久久精品国产a三级三级三级| 亚洲av在线观看美女高潮| 91精品国产九色| 亚洲在久久综合| av免费观看日本| 王馨瑶露胸无遮挡在线观看| 高清欧美精品videossex| 国产亚洲欧美精品永久| 我要看日韩黄色一级片| 赤兔流量卡办理| 最近最新中文字幕免费大全7| 久久久久久久精品精品| a 毛片基地| 女性被躁到高潮视频| 成年人午夜在线观看视频| 国产老妇伦熟女老妇高清| av视频免费观看在线观看| 国产精品人妻久久久久久| 一区二区三区精品91| 欧美日韩在线观看h| 我要看日韩黄色一级片| 在线 av 中文字幕| 日本欧美国产在线视频| 欧美97在线视频| 99九九线精品视频在线观看视频| 国产淫片久久久久久久久| 日韩视频在线欧美| 免费高清在线观看视频在线观看| 亚洲精品,欧美精品| 国产 一区精品| 欧美少妇被猛烈插入视频| av一本久久久久| 亚洲色图综合在线观看| 丰满少妇做爰视频| a级毛色黄片| 蜜桃久久精品国产亚洲av| 国产高清不卡午夜福利| 色哟哟·www| 国产精品伦人一区二区| 亚洲精品一二三| 亚洲精品一二三| 亚洲色图av天堂| 精品午夜福利在线看| 国产乱来视频区| 亚洲第一av免费看| 在线播放无遮挡| 亚洲国产精品专区欧美| 午夜视频国产福利| 视频区图区小说| 中文天堂在线官网| 亚洲精品aⅴ在线观看| 国产高清不卡午夜福利| 91aial.com中文字幕在线观看| 国产黄片视频在线免费观看| 国产一区有黄有色的免费视频| 久久久久久人妻| 久久久久久人妻| av在线app专区| 黄色欧美视频在线观看| 亚洲欧美成人综合另类久久久| 精品久久久久久电影网| 国产亚洲午夜精品一区二区久久| 久久精品久久精品一区二区三区| 夜夜骑夜夜射夜夜干| 乱系列少妇在线播放| 国产伦在线观看视频一区| 各种免费的搞黄视频| 国国产精品蜜臀av免费| 欧美高清性xxxxhd video| 两个人的视频大全免费| 国产免费视频播放在线视频| 性色avwww在线观看| 久久久欧美国产精品| 男女下面进入的视频免费午夜| 成年人午夜在线观看视频| 国产精品国产三级国产专区5o| 日本黄色片子视频| 亚洲av欧美aⅴ国产| 日韩av在线免费看完整版不卡| 欧美日韩在线观看h| 一本一本综合久久| .国产精品久久| 中国国产av一级| 又爽又黄a免费视频| 91aial.com中文字幕在线观看| 亚洲欧美中文字幕日韩二区| 国产男女超爽视频在线观看| 亚洲激情五月婷婷啪啪| 国产精品嫩草影院av在线观看| 麻豆成人av视频| 久久久久视频综合| 少妇裸体淫交视频免费看高清| 免费少妇av软件| 尾随美女入室| 多毛熟女@视频| 青青草视频在线视频观看| 免费人成在线观看视频色| 亚洲美女视频黄频| 欧美成人精品欧美一级黄| 日韩av不卡免费在线播放| 18禁裸乳无遮挡免费网站照片| 18+在线观看网站| 美女国产视频在线观看| 午夜精品国产一区二区电影| 青春草视频在线免费观看| 久久精品久久久久久噜噜老黄| 国产视频首页在线观看| 国产精品人妻久久久久久| 日韩av免费高清视频| 欧美成人a在线观看| 久久鲁丝午夜福利片| 观看美女的网站| 亚洲无线观看免费| 啦啦啦中文免费视频观看日本| 下体分泌物呈黄色| 丝瓜视频免费看黄片| 欧美变态另类bdsm刘玥| 国产视频首页在线观看| 人人妻人人爽人人添夜夜欢视频 | 三级国产精品欧美在线观看| av不卡在线播放| 欧美3d第一页| 亚洲精品,欧美精品| 色吧在线观看| 精品亚洲成国产av| 亚洲在久久综合| 国产精品女同一区二区软件| 在线精品无人区一区二区三 | 国产精品一区二区在线观看99| 2022亚洲国产成人精品| 99热这里只有是精品在线观看| 这个男人来自地球电影免费观看 | 简卡轻食公司| 男女啪啪激烈高潮av片| 麻豆乱淫一区二区| 久久99精品国语久久久| 男人狂女人下面高潮的视频| 黄片wwwwww| 欧美日韩亚洲高清精品| 色5月婷婷丁香| 丰满迷人的少妇在线观看| 精品一区二区三区视频在线| 国产免费视频播放在线视频| 亚洲国产精品成人久久小说| 尤物成人国产欧美一区二区三区| 99久久中文字幕三级久久日本| 中文字幕人妻熟人妻熟丝袜美| 亚洲国产精品专区欧美| 大片免费播放器 马上看| 嘟嘟电影网在线观看| 国产真实伦视频高清在线观看| 干丝袜人妻中文字幕| 亚洲天堂av无毛| 91久久精品国产一区二区三区| av视频免费观看在线观看| 日本-黄色视频高清免费观看| 婷婷色综合www| 99热这里只有精品一区| 精品一区二区免费观看| 99热这里只有是精品50| 国产亚洲欧美精品永久| 女性被躁到高潮视频| 国产色爽女视频免费观看| 各种免费的搞黄视频| 免费观看的影片在线观看| 欧美xxⅹ黑人| 一级片'在线观看视频| 免费观看的影片在线观看| 国产免费福利视频在线观看| 亚洲一级一片aⅴ在线观看| 国产成人精品一,二区| 少妇高潮的动态图| 欧美成人a在线观看| 免费观看av网站的网址| 国产成人91sexporn| 国产大屁股一区二区在线视频| 爱豆传媒免费全集在线观看| 久久这里有精品视频免费| 激情五月婷婷亚洲| 欧美精品亚洲一区二区| 亚洲av中文字字幕乱码综合| 18禁在线播放成人免费| 亚洲成色77777| 又大又黄又爽视频免费| 久久国产亚洲av麻豆专区| 免费看日本二区| 精品国产三级普通话版| 少妇精品久久久久久久| 日本免费在线观看一区| 爱豆传媒免费全集在线观看| 久久久精品免费免费高清| 亚洲av欧美aⅴ国产| 国产亚洲午夜精品一区二区久久| 亚洲欧美日韩另类电影网站 | 亚洲精品国产av成人精品| 精品熟女少妇av免费看| 国产黄色视频一区二区在线观看| av视频免费观看在线观看| 边亲边吃奶的免费视频| a级毛色黄片| 又大又黄又爽视频免费| 亚洲va在线va天堂va国产| 国产成人精品久久久久久| 熟女人妻精品中文字幕| 国产精品无大码| 高清毛片免费看| 18禁裸乳无遮挡动漫免费视频| 我要看黄色一级片免费的| 又黄又爽又刺激的免费视频.| 日韩av免费高清视频| 在线免费观看不下载黄p国产| 久久人人爽av亚洲精品天堂 | 啦啦啦视频在线资源免费观看| 国产69精品久久久久777片| 国产精品无大码| 国产深夜福利视频在线观看| 美女脱内裤让男人舔精品视频| 日韩三级伦理在线观看| 亚洲精品一二三| 国产黄频视频在线观看| 天堂8中文在线网| 嘟嘟电影网在线观看| 日日摸夜夜添夜夜添av毛片| 日韩成人av中文字幕在线观看| 大香蕉久久网| 日本欧美国产在线视频| 免费高清在线观看视频在线观看| 天堂8中文在线网| 亚洲精品国产av蜜桃| 三级经典国产精品| 在现免费观看毛片| 国产黄频视频在线观看| 国产成人a∨麻豆精品| 亚洲第一区二区三区不卡| 最近的中文字幕免费完整| av播播在线观看一区| 久久 成人 亚洲| 欧美高清性xxxxhd video| 啦啦啦在线观看免费高清www| 丝袜脚勾引网站| 人人妻人人看人人澡| 91在线精品国自产拍蜜月| 欧美三级亚洲精品| 热re99久久精品国产66热6| 欧美激情极品国产一区二区三区 | 男女边摸边吃奶| 在线观看国产h片| 国产精品久久久久久精品古装| 性高湖久久久久久久久免费观看| 99热网站在线观看| 国产伦精品一区二区三区四那| 一区二区三区四区激情视频| 97在线人人人人妻| 日本黄大片高清| 超碰97精品在线观看| 久久久久久久久久久免费av| 精品一区二区三区视频在线| 五月伊人婷婷丁香| 青春草视频在线免费观看| 久久99热这里只频精品6学生| 蜜桃久久精品国产亚洲av| 777米奇影视久久| 国产精品国产三级国产专区5o| 久久久久国产网址| 在现免费观看毛片| 久久精品夜色国产| 国产精品av视频在线免费观看| 日韩电影二区| 久久国产乱子免费精品| 精品久久久噜噜| 欧美一区二区亚洲| 熟女电影av网| 久久精品久久久久久久性| 一本—道久久a久久精品蜜桃钙片| 下体分泌物呈黄色| 一个人看视频在线观看www免费| 18禁裸乳无遮挡免费网站照片| 日产精品乱码卡一卡2卡三| 新久久久久国产一级毛片| 永久免费av网站大全| 我要看日韩黄色一级片| 久久国产精品大桥未久av | 另类亚洲欧美激情| av国产免费在线观看| tube8黄色片| 亚洲真实伦在线观看| 精品人妻一区二区三区麻豆| 99九九线精品视频在线观看视频| 99视频精品全部免费 在线| 日本黄色片子视频| 在线观看三级黄色| 免费看日本二区| 国产亚洲91精品色在线| 18+在线观看网站| av国产久精品久网站免费入址| 亚洲av中文字字幕乱码综合| 美女内射精品一级片tv| 国内少妇人妻偷人精品xxx网站| 国产深夜福利视频在线观看| 在线天堂最新版资源| 精品人妻熟女av久视频| 日韩不卡一区二区三区视频在线| 久久久久网色| 精品久久久久久久久亚洲| 久久久a久久爽久久v久久| 亚洲国产精品一区三区| 免费黄网站久久成人精品| 一级a做视频免费观看| 国产一级毛片在线| 爱豆传媒免费全集在线观看| 80岁老熟妇乱子伦牲交| 欧美bdsm另类| 精品一品国产午夜福利视频| 22中文网久久字幕| 国产一级毛片在线| 亚洲国产欧美人成| 精品国产一区二区三区久久久樱花 | 亚洲欧美清纯卡通| 黄片无遮挡物在线观看| 国产日韩欧美在线精品| 一区二区三区四区激情视频| 干丝袜人妻中文字幕| 国产男人的电影天堂91| 欧美激情极品国产一区二区三区 | 搡女人真爽免费视频火全软件| 午夜视频国产福利| 夜夜骑夜夜射夜夜干| 亚洲,欧美,日韩| 色婷婷久久久亚洲欧美| 国产欧美亚洲国产| 日韩av免费高清视频| 欧美极品一区二区三区四区| a级毛片免费高清观看在线播放| 国产高清不卡午夜福利| 一级av片app| 国产精品免费大片| 国产欧美日韩一区二区三区在线 | 日韩中文字幕视频在线看片 | 国产精品嫩草影院av在线观看| 免费播放大片免费观看视频在线观看| 亚洲国产色片| 日韩不卡一区二区三区视频在线| 亚洲人与动物交配视频| 色婷婷av一区二区三区视频| 韩国av在线不卡| xxx大片免费视频| 国产一级毛片在线| 一级a做视频免费观看| 成年av动漫网址| 国产精品爽爽va在线观看网站| 制服丝袜香蕉在线| 亚洲欧美日韩卡通动漫| 日韩人妻高清精品专区|