日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

c++指针概念回顾

發(fā)布時(shí)間:2023/12/18 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++指针概念回顾 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:復(fù)雜類(lèi)型說(shuō)明

????要了解指針,多多少少會(huì)出現(xiàn)一些比較復(fù)雜的類(lèi)型,所以我先介紹一下如何完全理解一個(gè)復(fù)雜類(lèi)型,要理解復(fù)雜類(lèi)型其實(shí)很簡(jiǎn)單,一個(gè)類(lèi)型里會(huì)出現(xiàn)很多運(yùn)算符,他們也像普通的表達(dá)式一樣,有優(yōu)先級(jí),其優(yōu)先級(jí)和運(yùn)算優(yōu)先級(jí)一樣,所以我總結(jié)了一下其原則:從變量名處起,根據(jù)運(yùn)算符優(yōu)先級(jí)結(jié)合,一步一步分析.下面讓我們先從簡(jiǎn)單的類(lèi)型開(kāi)始慢慢分析吧:

[cpp]?view plain?copy

  • int?p;?//這是一個(gè)普通的整型變量??
  • int?*p;?//首先從P?處開(kāi)始,先與*結(jié)合,所以說(shuō)明P?是一個(gè)指針,然后再與int?結(jié)合,說(shuō)明指針?biāo)赶虻膬?nèi)容的類(lèi)型為int?型.所以P是一個(gè)返回整型數(shù)據(jù)的指針??
  • int?p[3];?//首先從P?處開(kāi)始,先與[]結(jié)合,說(shuō)明P?是一個(gè)數(shù)組,然后與int?結(jié)合,說(shuō)明數(shù)組里的元素是整型的,所以P?是一個(gè)由整型數(shù)據(jù)組成的數(shù)組??
  • int?*p[3];?//首先從P?處開(kāi)始,先與[]結(jié)合,因?yàn)槠鋬?yōu)先級(jí)比*高,所以P?是一個(gè)數(shù)組,然后再與*結(jié)合,說(shuō)明數(shù)組里的元素是指針類(lèi)型,然后再與int?結(jié)合,說(shuō)明指針?biāo)赶虻膬?nèi)容的類(lèi)型是整型的,所以P?是一個(gè)由返回整型數(shù)據(jù)的指針?biāo)M成的數(shù)組??
  • int?(*p)[3];?//首先從P?處開(kāi)始,先與*結(jié)合,說(shuō)明P?是一個(gè)指針然后再與[]結(jié)合(與"()"這步可以忽略,只是為了改變優(yōu)先級(jí)),說(shuō)明指針?biāo)赶虻膬?nèi)容是一個(gè)數(shù)組,然后再與int?結(jié)合,說(shuō)明數(shù)組里的元素是整型的.所以P?是一個(gè)指向由整型數(shù)據(jù)組成的數(shù)組的指針??
  • int?**p;?//首先從P?開(kāi)始,先與*結(jié)合,說(shuō)是P?是一個(gè)指針,然后再與*結(jié)合,說(shuō)明指針?biāo)赶虻脑厥侵羔?然后再與int?結(jié)合,說(shuō)明該指針?biāo)赶虻脑厥钦蛿?shù)據(jù).由于二級(jí)指針以及更高級(jí)的指針極少用在復(fù)雜的類(lèi)型中,所以后面更復(fù)雜的類(lèi)型我們就不考慮多級(jí)指針了,最多只考慮一級(jí)指針.??
  • int?p(int);?//從P?處起,先與()結(jié)合,說(shuō)明P?是一個(gè)函數(shù),然后進(jìn)入()里分析,說(shuō)明該函數(shù)有一個(gè)整型變量的參數(shù),然后再與外面的int?結(jié)合,說(shuō)明函數(shù)的返回值是一個(gè)整型數(shù)據(jù)??
  • Int?(*p)(int);?//從P?處開(kāi)始,先與指針結(jié)合,說(shuō)明P?是一個(gè)指針,然后與()結(jié)合,說(shuō)明指針指向的是一個(gè)函數(shù),然后再與()里的int?結(jié)合,說(shuō)明函數(shù)有一個(gè)int?型的參數(shù),再與最外層的int?結(jié)合,說(shuō)明函數(shù)的返回類(lèi)型是整型,所以P?是一個(gè)指向有一個(gè)整型參數(shù)且返回類(lèi)型為整型的函數(shù)的指針??
  • int?*(*p(int))[3];?//可以先跳過(guò),不看這個(gè)類(lèi)型,過(guò)于復(fù)雜從P?開(kāi)始,先與()結(jié)合,說(shuō)明P?是一個(gè)函數(shù),然后進(jìn)入()里面,與int?結(jié)合,說(shuō)明函數(shù)有一個(gè)整型變量參數(shù),然后再與外面的*結(jié)合,說(shuō)明函數(shù)返回的是一個(gè)指針,,然后到最外面一層,先與[]結(jié)合,說(shuō)明返回的指針指向的是一個(gè)數(shù)組,然后再與*結(jié)合,說(shuō)明數(shù)組里的元素是指針,然后再與int?結(jié)合,說(shuō)明指針指向的內(nèi)容是整型數(shù)據(jù).所以P?是一個(gè)參數(shù)為一個(gè)整數(shù)據(jù)且返回一個(gè)指向由整型指針變量組成的數(shù)組的指針變量的函數(shù).??
  • 說(shuō)到這里也就差不多了,我們的任務(wù)也就這么多,理解了這幾個(gè)類(lèi)型,其它的類(lèi)型對(duì)我們來(lái)說(shuō)也是小菜了,不過(guò)我們一般不會(huì)用太復(fù)雜的類(lèi)型,那樣會(huì)大大減小程序的可讀性,請(qǐng)慎用,這上面的幾種類(lèi)型已經(jīng)足夠我們用了.

    一、細(xì)說(shuō)指針

    指針是一個(gè)特殊的變量,它里面存儲(chǔ)的數(shù)值被解釋成為內(nèi)存里的一個(gè)地址。要搞清一個(gè)指針需要搞清指針的四方面的內(nèi)容:指針的類(lèi)型、指針?biāo)赶虻念?lèi)型、指針的值或者叫指針?biāo)赶虻膬?nèi)存區(qū)、指針本身所占據(jù)的內(nèi)存區(qū)。讓我們分別說(shuō)明。

    先聲明幾個(gè)指針?lè)胖隼?#xff1a;
    例一:

    [cpp]?view plain?copy

  • (1)int*ptr;??
  • (2)char*ptr;??
  • (3)int**ptr;??
  • (4)int(*ptr)[3];??
  • (5)int*(*ptr)[4];??
  • 1.指針的類(lèi)型

    從語(yǔ)法的角度看,你只要把指針聲明語(yǔ)句里的指針名字去掉,剩下的部分就是這個(gè)指針的類(lèi)型。這是指針本身所具有的類(lèi)型。讓我們看看例一中各個(gè)指針的類(lèi)型:
    (1)int*ptr;//指針的類(lèi)型是int*
    (2)char*ptr;//指針的類(lèi)型是char*
    (3)int**ptr;//指針的類(lèi)型是int**
    (4)int(*ptr)[3];//指針的類(lèi)型是int(*)[3]
    (5)int*(*ptr)[4];//指針的類(lèi)型是int*(*)[4]
    怎么樣?找出指針的類(lèi)型的方法是不是很簡(jiǎn)單?

    2.指針?biāo)赶虻念?lèi)型

    當(dāng)你通過(guò)指針來(lái)訪問(wèn)指針?biāo)赶虻膬?nèi)存區(qū)時(shí),指針?biāo)赶虻念?lèi)型決定了編譯器將把那片內(nèi)存區(qū)里的內(nèi)容當(dāng)做什么來(lái)看待。
    從語(yǔ)法上看,你只須把指針聲明語(yǔ)句中的指針名字和名字左邊的指針聲明符*去掉,剩下的就是指針?biāo)赶虻念?lèi)型。例如:
    (1)int*ptr; //指針?biāo)赶虻念?lèi)型是int
    (2)char*ptr; //指針?biāo)赶虻牡念?lèi)型是char
    (3)int**ptr; //指針?biāo)赶虻牡念?lèi)型是int*
    (4)int(*ptr)[3]; //指針?biāo)赶虻牡念?lèi)型是int()[3]
    (5)int*(*ptr)[4]; //指針?biāo)赶虻牡念?lèi)型是int*()[4]

    在指針的算術(shù)運(yùn)算中,指針?biāo)赶虻念?lèi)型有很大的作用。
    指針的類(lèi)型(即指針本身的類(lèi)型)和指針?biāo)赶虻念?lèi)型是兩個(gè)概念。當(dāng)你對(duì)C 越來(lái)越熟悉時(shí),你會(huì)發(fā)現(xiàn),把與指針攪和在一起的"類(lèi)型"這個(gè)概念分成"指針的類(lèi)型"和"指針?biāo)赶虻念?lèi)型"兩個(gè)概念,是精通指針的關(guān)鍵點(diǎn)之一。我看了不少書(shū),發(fā)現(xiàn)有些寫(xiě)得差的書(shū)中,就把指針的這兩個(gè)概念攪在一起了,所以看起書(shū)來(lái)前后矛盾,越看越糊涂。

    3.指針的值----或者叫指針?biāo)赶虻膬?nèi)存區(qū)或地址

    指針的值是指針本身存儲(chǔ)的數(shù)值,這個(gè)值將被編譯器當(dāng)作一個(gè)地址,而不是一個(gè)一般的數(shù)值。在32 位程序里,所有類(lèi)型的指針的值都是一個(gè)32 位整數(shù),因?yàn)?2 位程序里內(nèi)存地址全都是32 位長(zhǎng)。指針?biāo)赶虻膬?nèi)存區(qū)就是從指針的值所代表的那個(gè)內(nèi)存地址開(kāi)始,長(zhǎng)度為si zeof(指針?biāo)赶虻念?lèi)型)的一片內(nèi)存區(qū)。以后,我們說(shuō)一個(gè)指針的值是XX,就相當(dāng)于說(shuō)該指針指向了以XX 為首地址的一片內(nèi)存區(qū)域;我們說(shuō)一個(gè)指針指向了某塊內(nèi)存區(qū)域,就相當(dāng)于說(shuō)該指針的值是這塊內(nèi)存區(qū)域的首地址。指針?biāo)赶虻膬?nèi)存區(qū)和指針?biāo)赶虻念?lèi)型是兩個(gè)完全不同的概念。在例一中,指針?biāo)赶虻念?lèi)型已經(jīng)有了,但由于指針還未初始化,所以它所指向的內(nèi)存區(qū)是不存在的,或者說(shuō)是無(wú)意義的。
    以后,每遇到一個(gè)指針,都應(yīng)該問(wèn)問(wèn):這個(gè)指針的類(lèi)型是什么?指針指的類(lèi)型是什么?該指針指向了哪里?(重點(diǎn)注意)

    ?

    4 指針本身所占據(jù)的內(nèi)存區(qū)

    指針本身占了多大的內(nèi)存?你只要用函數(shù)sizeof(指針的類(lèi)型)測(cè)一下就知道了。在32 位平臺(tái)里,指針本身占據(jù)了4 個(gè)字節(jié)的長(zhǎng)度。指針本身占據(jù)的內(nèi)存這個(gè)概念在判斷一個(gè)指針表達(dá)式(后面會(huì)解釋)是否是左值時(shí)很有用。

    二、指針的算術(shù)運(yùn)算

    指針可以加上或減去一個(gè)整數(shù)。指針的這種運(yùn)算的意義和通常的數(shù)值的加減運(yùn)算的意義是不一樣的,以單元為單位。例如:
    例二:

    [cpp]?view plain?copy

  • char?a[20];??
  • int?*ptr=(int?*)a;?//強(qiáng)制類(lèi)型轉(zhuǎn)換并不會(huì)改變a?的類(lèi)型??
  • ptr++;??
  • 在上例中,指針ptr 的類(lèi)型是int*,它指向的類(lèi)型是int,它被初始化為指向整型變量a。接下來(lái)的第3句中,指針ptr被加了1,編譯器是這樣處理的:它把指針ptr 的值加上了sizeof(int),在32 位程序中,是被加上了4,因?yàn)樵?2 位程序中,int 占4 個(gè)字節(jié)。由于地址是用字節(jié)做單位的,故ptr 所指向的地址由原來(lái)的變量a 的地址向高地址方向增加了4 個(gè)字節(jié)。由于char 類(lèi)型的長(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ù)組,看例子:
    例三:

    [cpp]?view plain?copy

  • int?array[20]={0};??
  • int?*ptr=array;??
  • for(i=0;i<20;i++)??
  • {??
  • ????(*ptr)++;??
  • ????ptr++;??
  • }??
  • 這個(gè)例子將整型數(shù)組中各個(gè)單元的值加1。由于每次循環(huán)都將指針ptr加1 個(gè)單元,所以每次循環(huán)都能訪問(wèn)數(shù)組的下一個(gè)單元。

    ?

    再看例子:
    例四:

    [cpp]?view plain?copy

  • char?a[20]="You_are_a_girl";??
  • int?*ptr=(int?*)a;??
  • 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é)。
    下面請(qǐng)?jiān)试S我再舉一個(gè)例子:(一個(gè)誤區(qū))

    例五:

    [cpp]?view plain?copy

  • #include??
  • int?main()??
  • {??
  • ????char?a[20]="?You_are_a_girl";??
  • ????char?*p=a;??
  • ????char?**ptr=&p;??
  • ????//printf("p=%d\n",p);??
  • ????//printf("ptr=%d\n",ptr);??
  • ????//printf("*ptr=%d\n",*ptr);??
  • ????printf("**ptr=%c\n",**ptr);??
  • ????ptr++;??
  • ????//printf("ptr=%d\n",ptr);??
  • ????//printf("*ptr=%d\n",*ptr);??
  • ????printf("**ptr=%c\n",**ptr);??
  • }??
  • 誤區(qū)一、輸出答案為Y 和o
    誤解:ptr 是一個(gè)char 的二級(jí)指針,當(dāng)執(zhí)行ptr++;時(shí),會(huì)使指針加一個(gè)sizeof(char),所以輸出如上結(jié)果,這個(gè)可能只是少部分人的結(jié)果.
    誤區(qū)二、輸出答案為Y 和a誤解:ptr 指向的是一個(gè)char *類(lèi)型,當(dāng)執(zhí)行ptr++;時(shí),會(huì)使指針加一個(gè)sizeof(char *)(有可能會(huì)有人認(rèn)為這個(gè)值為1,那就會(huì)得到誤區(qū)一的答案,這個(gè)值應(yīng)該是4,參考前面內(nèi)容), 即&p+4; 那進(jìn)行一次取值運(yùn)算不就指向數(shù)組中的第五個(gè)元素了嗎?那輸出的結(jié)果不就是數(shù)組中第五個(gè)元素了嗎?答案是否定的.
    正解:?ptr 的類(lèi)型是char **,指向的類(lèi)型是一個(gè)char *類(lèi)型,該指向的地址就是p的地址(&p),當(dāng)執(zhí)行ptr++;時(shí),會(huì)使指針加一個(gè)sizeof(char*),即&p+4;那*(&p+4)指向哪呢,這個(gè)你去問(wèn)上帝吧,或者他會(huì)告訴你在哪?所以最后的輸出會(huì)是一個(gè)隨機(jī)的值,或許是一個(gè)非法操作.
    總結(jié)一下:
    一個(gè)指針ptrold 加(減)一個(gè)整數(shù)n 后,結(jié)果是一個(gè)新的指針ptrnew,ptrnew 的類(lèi)型和ptrold 的類(lèi)型相同,ptrnew 所指向的類(lèi)型和ptrold所指向的類(lèi)型也相同。ptrnew 的值將比ptrold 的值增加(減少)了n 乘sizeof(ptrold 所指向的類(lèi)型)個(gè)字節(jié)。就是說(shuō),ptrnew 所指向的內(nèi)存區(qū)將比ptrold 所指向的內(nèi)存區(qū)向高(低)地址方向移動(dòng)了n 乘sizeof(ptrold 所指向的類(lèi)型)個(gè)字節(jié)。指針和指針進(jìn)行加減:兩個(gè)指針不能進(jìn)行加法運(yùn)算,這是非法操作,因?yàn)檫M(jìn)行加法后,得到的結(jié)果指向一個(gè)不知所向的地方,而且毫無(wú)意義。兩個(gè)指針可以進(jìn)行減法操作,但必須類(lèi)型相同,一般用在數(shù)組方面,不多說(shuō)了。

    三、運(yùn)算符&和*

    這里&是取地址運(yùn)算符,*是間接運(yùn)算符。
    &a 的運(yùn)算結(jié)果是一個(gè)指針,指針的類(lèi)型是a 的類(lèi)型加個(gè)*,指針?biāo)赶虻念?lèi)型是a 的類(lèi)型,指針?biāo)赶虻牡刂仿?#xff0c;那就是a 的地址。
    *p 的運(yùn)算結(jié)果就五花八門(mén)了??傊?p 的結(jié)果是p 所指向的東西,這個(gè)東西有這些特點(diǎn):它的類(lèi)型是p 指向的類(lèi)型,它所占用的地址是p所指向的地址。
    例六:

    [cpp]?view plain?copy

  • int?a=12;?int?b;?int?*p;?int?**ptr;??
  • p=&a;?//&a?的結(jié)果是一個(gè)指針,類(lèi)型是int*,指向的類(lèi)型是??
  • //int,指向的地址是a?的地址。??
  • *p=24;?//*p?的結(jié)果,在這里它的類(lèi)型是int,它所占用的地址是??
  • //p?所指向的地址,顯然,*p?就是變量a。??
  • ptr=&p;?//&p?的結(jié)果是個(gè)指針,該指針的類(lèi)型是p?的類(lèi)型加個(gè)*,??
  • //在這里是int?**。該指針?biāo)赶虻念?lèi)型是p?的類(lèi)型,這??
  • //里是int*。該指針?biāo)赶虻牡刂肪褪侵羔榩?自己的地址。??
  • *ptr=&b;?//*ptr?是個(gè)指針,&b?的結(jié)果也是個(gè)指針,且這兩個(gè)指針??
  • //的類(lèi)型和所指向的類(lèi)型是一樣的,所以用&b?來(lái)給*ptr?賦??
  • //值就是毫無(wú)問(wèn)題的了。??
  • **ptr=34;?//*ptr?的結(jié)果是ptr?所指向的東西,在這里是一個(gè)指針,??
  • //對(duì)這個(gè)指針再做一次*運(yùn)算,結(jié)果是一個(gè)int?類(lèi)型的變量。??
  • 四、指針表達(dá)式

    一個(gè)表達(dá)式的結(jié)果如果是一個(gè)指針,那么這個(gè)表達(dá)式就叫指針表式。
    下面是一些指針表達(dá)式的例子:
    例七:

    [cpp]?view plain?copy

  • int?a,b;??
  • int?array[10];??
  • int?*pa;??
  • pa=&a;?//&a?是一個(gè)指針表達(dá)式。??
  • Int?**ptr=&pa;?//&pa?也是一個(gè)指針表達(dá)式。??
  • *ptr=&b;?//*ptr?和&b?都是指針表達(dá)式。??
  • pa=array;??
  • pa++;?//這也是指針表達(dá)式。??

  • 例八:

    [cpp]?view plain?copy

  • char?*arr[20];??
  • char?**parr=arr;?//如果把a(bǔ)rr?看作指針的話,arr?也是指針表達(dá)式??
  • char?*str;??
  • str=*parr;?//*parr?是指針表達(dá)式??
  • str=*(parr+1);?//*(parr+1)是指針表達(dá)式??
  • str=*(parr+2);?//*(parr+2)是指針表達(dá)式??
  • 由于指針表達(dá)式的結(jié)果是一個(gè)指針,所以指針表達(dá)式也具有指針?biāo)哂械乃膫€(gè)要素:指針的類(lèi)型,指針?biāo)赶虻念?lèi)型,指針指向的內(nèi)存區(qū),指針自身占據(jù)的內(nèi)存。
    好了,當(dāng)一個(gè)指針表達(dá)式的結(jié)果指針已經(jīng)明確地具有了指針自身占據(jù)的內(nèi)存的話,這個(gè)指針表達(dá)式就是一個(gè)左值,否則就不是一個(gè)左值。在例七中,&a 不是一個(gè)左值,因?yàn)樗€沒(méi)有占據(jù)明確的內(nèi)存。*ptr 是一個(gè)左值,因?yàn)?ptr 這個(gè)指針已經(jīng)占據(jù)了內(nèi)存,其實(shí)*ptr 就是指針pa,既然pa 已經(jīng)在內(nèi)存中有了自己的位置,那么*ptr 當(dāng)然也有了自己的位置。

    五、數(shù)組和指針的關(guān)系

    數(shù)組的數(shù)組名其實(shí)可以看作一個(gè)指針??聪吕?#xff1a;
    例九:

    [cpp]?view plain?copy

  • int?array[10]={0,1,2,3,4,5,6,7,8,9},value;??
  • value=array[0];?//也可寫(xiě)成:value=*array;??
  • value=array[3];?//也可寫(xiě)成:value=*(array+3);??
  • value=array[4];?//也可寫(xiě)成:value=*(array+4);??
  • 上例中,一般而言數(shù)組名array 代表數(shù)組本身,類(lèi)型是int[10],但如果把a(bǔ)rray 看做指針的話,它指向數(shù)組的第0 個(gè)單元,類(lèi)型是int* 所指向的類(lèi)型是數(shù)組單元的類(lèi)型即int。因此*array 等于0 就一點(diǎn)也不奇怪了。同理,array+3 是一個(gè)指向數(shù)組第3 個(gè)單元的指針,所以*(array+3)等于3。其它依此類(lèi)推。
    例十:

    [cpp]?view plain?copy

  • char?*str[3]={??
  • ????"Hello,thisisasample!",??
  • ????"Hi,goodmorning.",??
  • ????"Helloworld"??
  • };??
  • char?s[80];??
  • strcpy(s,str[0]);?//也可寫(xiě)成strcpy(s,*str);??
  • strcpy(s,str[1]);?//也可寫(xiě)成strcpy(s,*(str+1));??
  • strcpy(s,str[2]);?//也可寫(xiě)成strcpy(s,*(str+2));??
  • 上例中,str 是一個(gè)三單元的數(shù)組,該數(shù)組的每個(gè)單元都是一個(gè)指針,這些指針各指向一個(gè)字符串。把指針數(shù)組名str 當(dāng)作一個(gè)指針的話,它指向數(shù)組的第0 號(hào)單元,它的類(lèi)型是char **,它指向的類(lèi)型是char *。*str也是一個(gè)指針,它的類(lèi)型是char*,它所指向的類(lèi)型是char,它指向的地址是字符串"Hello,thisisasample!"的第一個(gè)字符的地址,即'H'的地址。注意:字符串相當(dāng)于是一個(gè)數(shù)組,在內(nèi)存中以數(shù)組的形式儲(chǔ)存,只不過(guò)字符串是一個(gè)數(shù)組常量,內(nèi)容不可改變,且只能是右值.如果看成指針的話,他即是常量指針,也是指針常量.str+1 也是一個(gè)指針,它指向數(shù)組的第1 號(hào)單元,它的類(lèi)型是char**,它指向的類(lèi)型是char*。*(str+1)也是一個(gè)指針,它的類(lèi)型是char*,它所指向的類(lèi)型是char,它指向"Hi,goodmorning."的第一個(gè)字符'H'

    下面總結(jié)一下數(shù)組的數(shù)組名(數(shù)組中儲(chǔ)存的也是數(shù)組)的問(wèn)題:
    聲明了一個(gè)數(shù)組TYPE array[n],則數(shù)組名稱(chēng)array 就有了兩重含義:
    第一,它代表整個(gè)數(shù)組,它的類(lèi)型是TYPE[n];
    第二,它是一個(gè)常量指針,該指針的類(lèi)型是TYPE*,該指針指向的類(lèi)型是TYPE,也就是數(shù)組單元的類(lèi)型,該指針指向的內(nèi)存區(qū)就是數(shù)組第0 號(hào)單元,該指針自己占有單獨(dú)的內(nèi)存區(qū),注意它和數(shù)組第0 號(hào)單元占據(jù)的內(nèi)存區(qū)是不同的。該指針的值是不能修改的,即類(lèi)似array++的表達(dá)式是錯(cuò)誤的。在不同的表達(dá)式中數(shù)組名array 可以扮演不同的角色。在表達(dá)式sizeof(array)中,數(shù)組名array 代表數(shù)組本身,故這時(shí)sizeof 函數(shù)測(cè)出的是整個(gè)數(shù)組的大小。
    在表達(dá)式*array 中,array 扮演的是指針,因此這個(gè)表達(dá)式的結(jié)果就是數(shù)組第0 號(hào)單元的值。sizeof(*array)測(cè)出的是數(shù)組單元的大小。
    表達(dá)式array+n(其中n=0,1,2,.....)中,array 扮演的是指針,故array+n 的結(jié)果是一個(gè)指針,它的類(lèi)型是TYPE *,它指向的類(lèi)型是TYPE,它指向數(shù)組第n號(hào)單元。故sizeof(array+n)測(cè)出的是指針類(lèi)型的大小。在32 位程序中結(jié)果是4
    例十一:

    [cpp]?view plain?copy

  • int?array[10];??
  • int?(*ptr)[10];??
  • ptr=&array;:??
  • ?上例中ptr 是一個(gè)指針,它的類(lèi)型是int(*)[10],他指向的類(lèi)型是int[10] ,我們用整個(gè)數(shù)組的首地址來(lái)初始化它。在語(yǔ)句ptr=&array中,array 代表數(shù)組本身。
    本節(jié)中提到了函數(shù)sizeof(),那么我來(lái)問(wèn)一問(wèn),sizeof(指針名稱(chēng))測(cè)出的究竟是指針自身類(lèi)型的大小呢還是指針?biāo)赶虻念?lèi)型的大小?
    答案是前者。例如:
    int(*ptr)[10];
    則在32 位程序中,有:
    sizeof(int(*)[10])==4
    sizeof(int[10])==40
    sizeof(ptr)==4
    實(shí)際上,sizeof(對(duì)象)測(cè)出的都是對(duì)象自身的類(lèi)型的大小,而不是別的什么類(lèi)型的大小。

    六、指針和結(jié)構(gòu)類(lèi)型的關(guān)系

    可以聲明一個(gè)指向結(jié)構(gòu)類(lèi)型對(duì)象的指針。
    例十二:

    [cpp]?view plain?copy

  • struct?MyStruct??
  • {??
  • ????int?a;??
  • ????int?b;??
  • ????int?c;??
  • };??
  • struct?MyStruct?ss={20,30,40};??
  • //聲明了結(jié)構(gòu)對(duì)象ss,并把ss?的成員初始化為20,30?和40。??
  • struct?MyStruct?*ptr=&ss;??
  • //聲明了一個(gè)指向結(jié)構(gòu)對(duì)象ss?的指針。它的類(lèi)型是??
  • //MyStruct?*,它指向的類(lèi)型是MyStruct。??
  • int?*pstr=(int*)&ss;??
  • //聲明了一個(gè)指向結(jié)構(gòu)對(duì)象ss?的指針。但是pstr?和??
  • //它被指向的類(lèi)型ptr?是不同的。??
  • 請(qǐng)問(wèn)怎樣通過(guò)指針ptr 來(lái)訪問(wèn)ss 的三個(gè)成員變量?
    答案:

    ptr->a; //指向運(yùn)算符,或者可以這們(*ptr).a,建議使用前者
    ptr->b;

    ptr->c;

    又請(qǐng)問(wèn)怎樣通過(guò)指針pstr 來(lái)訪問(wèn)ss 的三個(gè)成員變量?
    答案:

    *pstr; //訪問(wèn)了ss 的成員a。
    *(pstr+1); //訪問(wèn)了ss 的成員b。
    *(pstr+2) //訪問(wèn)了ss 的成員c。

    雖然我在我的MSVC++6.0 上調(diào)式過(guò)上述代碼,但是要知道,這樣使用pstr 來(lái)訪問(wèn)結(jié)構(gòu)成員是不正規(guī)的,為了說(shuō)明為什么不正規(guī),讓我們看看怎樣通過(guò)指針來(lái)訪問(wèn)數(shù)組的各個(gè)單元: (將結(jié)構(gòu)體換成數(shù)組)

    例十三:

    [cpp]?view plain?copy

  • int?array[3]={35,56,37};??
  • int?*pa=array;??
  • //通過(guò)指針pa?訪問(wèn)數(shù)組array?的三個(gè)單元的方法是:??
  • *pa;?//訪問(wèn)了第0?號(hào)單元??
  • *(pa+1);?//訪問(wèn)了第1?號(hào)單元??
  • *(pa+2);?//訪問(wèn)了第2?號(hào)單元??
  • 從格式上看倒是與通過(guò)指針訪問(wèn)結(jié)構(gòu)成員的不正規(guī)方法的格式一樣。
    所有的C/C++編譯器在排列數(shù)組的單元時(shí),總是把各個(gè)數(shù)組單元存放在連續(xù)的存儲(chǔ)區(qū)里,單元和單元之間沒(méi)有空隙。但在存放結(jié)構(gòu)對(duì)象的各個(gè)成員時(shí),在某種編譯環(huán)境下,可能會(huì)需要字對(duì)齊或雙字對(duì)齊或者是別的什么對(duì)齊,需要在相鄰兩個(gè)成員之間加若干個(gè)"填充字節(jié)",這就導(dǎo)致各個(gè)成員之間可能會(huì)有若干個(gè)字節(jié)的空隙。
    所以,在例十二中,即使*pstr 訪問(wèn)到了結(jié)構(gòu)對(duì)象ss 的第一個(gè)成員變量a,也不能保證*(pstr+1)就一定能訪問(wèn)到結(jié)構(gòu)成員b。因?yàn)槌蓡Ta 和成員b 之間可能會(huì)有若干填充字節(jié),說(shuō)不定*(pstr+1)就正好訪問(wèn)到了這些填充字節(jié)呢。這也證明了指針的靈活性。要是你的目的就是想看看各個(gè)結(jié)構(gòu)成員之間到底有沒(méi)有填充字節(jié),嘿,這倒是個(gè)不錯(cuò)的方法。
    不過(guò)指針訪問(wèn)結(jié)構(gòu)成員的正確方法應(yīng)該是象例十二中使用指針ptr 的方法。

    七、指針和函數(shù)的關(guān)系

    可以把一個(gè)指針聲明成為一個(gè)指向函數(shù)的指針。
    int fun1(char *,int);
    int (*pfun1)(char *,int);
    pfun1=fun1;
    int a=(*pfun1)("abcdefg",7); //通過(guò)函數(shù)指針調(diào)用函數(shù)。
    可以把指針作為函數(shù)的形參。在函數(shù)調(diào)用語(yǔ)句中,可以用指針表達(dá)式來(lái)作為實(shí)參。
    例十四:

    [cpp]?view plain?copy

  • int?fun(char?*);??
  • inta;??
  • char?str[]="abcdefghijklmn";??
  • a=fun(str);??
  • int?fun(char?*s)??
  • {??
  • ????int?num=0;??
  • ????for(int?i=0;;)??
  • ????{??
  • ????????num+=*s;s++;??
  • ????}??
  • ????return?num;??
  • }??
  • 這個(gè)例子中的函數(shù)fun 統(tǒng)計(jì)一個(gè)字符串中各個(gè)字符的ASCII 碼值之和。前面說(shuō)了,數(shù)組的名字也是一個(gè)指針。在函數(shù)調(diào)用中,當(dāng)把str作為實(shí)參傳遞給形參s 后,實(shí)際是把str 的值傳遞給了s,s 所指向的地址就和str 所指向的地址一致,但是str 和s 各自占用各自的存儲(chǔ)空間。在函數(shù)體內(nèi)對(duì)s 進(jìn)行自加1 運(yùn)算,并不意味著同時(shí)對(duì)str 進(jìn)行了自加1 運(yùn)算。

    八、指針類(lèi)型轉(zhuǎn)換

    當(dāng)我們初始化一個(gè)指針或給一個(gè)指針賦值時(shí),賦值號(hào)的左邊是一個(gè)指針,賦值號(hào)的右邊是一個(gè)指針表達(dá)式。在我們前面所舉的例子中,絕大多數(shù)情況下,指針的類(lèi)型和指針表達(dá)式的類(lèi)型是一樣的,指針?biāo)赶虻念?lèi)型和指針表達(dá)式所指向的類(lèi)型是一樣的。
    例十五:

    [cpp]?view plain?copy

  • float?f=12.3;??
  • float?*fptr=&f;??
  • int?*p;??
  • 在上面的例子中,假如我們想讓指針p 指向?qū)崝?shù)f,應(yīng)該怎么辦?
    是用下面的語(yǔ)句嗎?
    p=&f;
    不對(duì)。因?yàn)橹羔榩 的類(lèi)型是int *,它指向的類(lèi)型是int。表達(dá)式&f 的結(jié)果是一個(gè)指針,指針的類(lèi)型是float *,它指向的類(lèi)型是float。
    兩者不一致,直接賦值的方法是不行的。至少在我的MSVC++6.0 上,對(duì)指針的賦值語(yǔ)句要求賦值號(hào)兩邊的類(lèi)型一致,所指向的類(lèi)型也一致,其它的編譯器上我沒(méi)試過(guò),大家可以試試。為了實(shí)現(xiàn)我們的目的,需要進(jìn)行"強(qiáng)制類(lèi)型轉(zhuǎn)換":
    p=(int*)&f;
    如果有一個(gè)指針p,我們需要把它的類(lèi)型和所指向的類(lèi)型改為T(mén)YEP *TYPE, 那么語(yǔ)法格式是: (TYPE *)p;
    這樣強(qiáng)制類(lèi)型轉(zhuǎn)換的結(jié)果是一個(gè)新指針,該新指針的類(lèi)型是TYPE *,它指向的類(lèi)型是TYPE,它指向的地址就是原指針指向的地址。
    而原來(lái)的指針p 的一切屬性都沒(méi)有被修改。(切記)
    一個(gè)函數(shù)如果使用了指針作為形參,那么在函數(shù)調(diào)用語(yǔ)句的實(shí)參和形參的結(jié)合過(guò)程中,必須保證類(lèi)型一致,否則需要強(qiáng)制轉(zhuǎn)換
    例十六:

    [cpp]?view plain?copy

  • void?fun(char*);??
  • int?a=125,b;??
  • fun((char*)&a);??
  • void?fun(char*s)??
  • {??
  • ????charc;??
  • ????c=*(s+3);*(s+3)=*(s+0);*(s+0)=c;??
  • ????c=*(s+2);*(s+2)=*(s+1);*(s+1)=c;??
  • }??
  • 注意這是一個(gè)32 位程序,故int 類(lèi)型占了四個(gè)字節(jié),char 類(lèi)型占一個(gè)字節(jié)。函數(shù)fun 的作用是把一個(gè)整數(shù)的四個(gè)字節(jié)的順序來(lái)個(gè)顛倒。注意到了嗎?在函數(shù)調(diào)用語(yǔ)句中,實(shí)參&a 的結(jié)果是一個(gè)指針,它的類(lèi)型是int *,它指向的類(lèi)型是int。形參這個(gè)指針的類(lèi)型是char *,它指向的類(lèi)型是char。這樣,在實(shí)參和形參的結(jié)合過(guò)程中,我們必須進(jìn)行一次從int *類(lèi)型到char *類(lèi)型的轉(zhuǎn)換。
    結(jié)合這個(gè)例子,我們可以這樣來(lái)
    想象編譯器進(jìn)行轉(zhuǎn)換的過(guò)程:編譯器先構(gòu)造一個(gè)臨時(shí)指針char *temp,然后執(zhí)行temp=(char *)&a,最后再把temp 的值傳遞給s。所以最后的結(jié)果是:s 的類(lèi)型是char *,它指向的類(lèi)型是char,它指向的地址就是a 的首地址。
    我們已經(jīng)知道,指針的值就是指針指向的地址,在32 位程序中,指針的值其實(shí)是一個(gè)32 位整數(shù)。
    那可不可以把一個(gè)整數(shù)當(dāng)作指針的值直接賦給指針呢?就象下面的語(yǔ)句:

    [cpp]?view plain?copy

  • unsigned?int?a;??
  • TYPE?*ptr;?//TYPE?是int,char?或結(jié)構(gòu)類(lèi)型等等類(lèi)型。??
  • a=20345686;??
  • ptr=20345686;?//我們的目的是要使指針ptr?指向地址20345686??
  • ??
  • ptr=a;?//我們的目的是要使指針ptr?指向地址20345686??
  • //編譯一下吧。結(jié)果發(fā)現(xiàn)后面兩條語(yǔ)句全是錯(cuò)的。那么我們的目的就不能達(dá)到了嗎?不,還有辦法:??
  • unsigned?int?a;??
  • TYPE?*ptr;?//TYPE?是int,char?或結(jié)構(gòu)類(lèi)型等等類(lèi)型。??
  • a=N?//N?必須代表一個(gè)合法的地址;??
  • ptr=(TYPE*)a;?//呵呵,這就可以了。??
  • 嚴(yán)格說(shuō)來(lái)這里的(TYPE *)和指針類(lèi)型轉(zhuǎn)換中的(TYPE *)還不一樣。這里的(TYPE*)的意思是把無(wú)符號(hào)整數(shù)a 的值當(dāng)作一個(gè)地址來(lái)看待。上面強(qiáng)調(diào)了a 的值必須代表一個(gè)合法的地址,否則的話,在你使用ptr 的時(shí)候,就會(huì)出現(xiàn)非法操作錯(cuò)誤。想想能不能反過(guò)來(lái),把指針指向的地址即指針的值當(dāng)作一個(gè)整數(shù)取出來(lái)。完全可以。下面的例子演示了把一個(gè)指針的值當(dāng)作一個(gè)整數(shù)取出來(lái),然后再把這個(gè)整數(shù)當(dāng)作一個(gè)地址賦給一個(gè)指針:
    例十七:[cpp]?view plain?copy

    ?

  • int?a=123,b;??
  • int?*ptr=&a;??
  • char?*str;??
  • b=(int)ptr;?//把指針ptr?的值當(dāng)作一個(gè)整數(shù)取出來(lái)。??
  • str=(char*)b;?//把這個(gè)整數(shù)的值當(dāng)作一個(gè)地址賦給指針str。??
  • 現(xiàn)在我們已經(jīng)知道了,可以把指針的值當(dāng)作一個(gè)整數(shù)取出來(lái),也可以把一個(gè)整數(shù)值當(dāng)作地址賦給一個(gè)指針。

    九、指針的安全問(wèn)題

    看下面的例子:
    例十八:

    [cpp]?view plain?copy

    ?

  • char?s='a';??
  • int?*ptr;??
  • ptr=(int?*)&s;??
  • *ptr=1298;??
  • 指針ptr 是一個(gè)int *類(lèi)型的指針,它指向的類(lèi)型是int。它指向的地址就是s 的首地址。在32 位程序中,s 占一個(gè)字節(jié),int 類(lèi)型占四個(gè)字節(jié)。最后一條語(yǔ)句不但改變了s 所占的一個(gè)字節(jié),還把和s 相臨的高地址方向的三個(gè)字節(jié)也改變了。這三個(gè)字節(jié)是干什么的?只有編譯程序知道,而寫(xiě)程序的人是不太可能知道的。也許這三個(gè)字節(jié)里存儲(chǔ)了非常重要的數(shù)據(jù),也許這三個(gè)字節(jié)里正好是程序的一條代碼,而由于你對(duì)指針的馬虎應(yīng)用,這三個(gè)字節(jié)的值被改變了!這會(huì)造成崩潰性的錯(cuò)誤。
    讓我們?cè)賮?lái)看一例:
    例十九:

    [cpp]?view plain?copy

    ?

  • char?a;??
  • int?*ptr=&a;??
  • ptr++;??
  • *ptr=115;??
  • 該例子完全可以通過(guò)編譯,并能執(zhí)行。但是看到?jīng)]有?第3 句對(duì)指針ptr 進(jìn)行自加1 運(yùn)算后,ptr 指向了和整形變量a 相鄰的高地址方向的一塊存儲(chǔ)區(qū)。這塊存儲(chǔ)區(qū)里是什么?我們不知道。有可能它是一個(gè)非常重要的數(shù)據(jù),甚至可能是一條代碼。
    而第4 句竟然往這片存儲(chǔ)區(qū)里寫(xiě)入一個(gè)數(shù)據(jù)!這是嚴(yán)重的錯(cuò)誤。所以在使用指針時(shí),程序員心里必須非常清楚:我的指針究竟指向了哪里。在用指針訪問(wèn)數(shù)組的時(shí)候,也要注意不要超出數(shù)組的低端和高端界限,否則也會(huì)造成類(lèi)似的錯(cuò)誤。
    在指針的強(qiáng)制類(lèi)型轉(zhuǎn)換:ptr1=(TYPE *)ptr2 中,如果sizeof(ptr2的類(lèi)型)大于sizeof(ptr1 的類(lèi)型),那么在使用指針ptr1 來(lái)訪問(wèn)ptr2所指向的存儲(chǔ)區(qū)時(shí)是安全的。如果sizeof(ptr2 的類(lèi)型) 小于sizeof(ptr1 的類(lèi)型),那么在使用指針ptr1 來(lái)訪問(wèn)ptr2 所指向的存儲(chǔ)區(qū)時(shí)是不安全的。至于為什么,讀者結(jié)合例十八來(lái)想一想,應(yīng)該會(huì)明白的。

    //*****************************

    ?

    變量和指針的聲明也可以放到一起:

    ?
  • int a, b, c;

  • double f;

  • ?
  • int other, *pt_a = &a, *pt_b = &b, *pt_c = &c;

  • double x = 0, *pt_f = &f;

  • 回到指針,接下來(lái)就是修改指針指向變量的值了,怎么弄呢?下面就是例子:

    ?
  • int a;

  • int *pt = &a;

  • *pt = 123; // 該語(yǔ)句等同于 a = 123;

  • ?
  • 不要把“*”給忘了哈。

    至于這個(gè)“*”符號(hào),可以這么理解:需要用到指針指向的內(nèi)容時(shí),加上“*”,此時(shí)它等同于一個(gè)變量;只是需要指針的地址時(shí),不需要加“*”,此時(shí)它代表內(nèi)存的地址。

    而指針也可以改變它指向的地址:

  • int?array[3]={35,56,37};??
  • int?*pa=array;??
  • //通過(guò)指針pa?訪問(wèn)數(shù)組array?的三個(gè)單元的方法是:??
  • *pa;?//訪問(wèn)了第0?號(hào)單元??
  • *(pa+1);?//訪問(wèn)了第1?號(hào)單元??
  • *(pa+2);?//訪問(wèn)了第2?號(hào)單元??
  • 總結(jié)

    以上是生活随笔為你收集整理的c++指针概念回顾的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    av网站在线免费观看 | 久久久亚洲成人 | 激情久久综合 | 日本午夜在线观看 | 91在线亚洲 | 99精品国产aⅴ | 五月婷婷视频在线 | 伊人网站| 丁香六月综合网 | 欧美日韩不卡一区二区 | 91免费观看视频网站 | 日本中文字幕久久 | 在线看污网站 | 九九九视频在线 | 精品国产免费av | 欧美视频日韩视频 | 日韩1页| 97精品国产97久久久久久 | 久久免费国产视频 | 久久中文字幕在线视频 | 天天色天天射天天干 | 国产一线天在线观看 | 免费av片在线 | 激情五月亚洲 | 午夜精品久久久久99热app | 97精品国产手机 | 中文字幕第一页在线播放 | 中文字幕乱视频 | 国产一区二区在线观看免费 | 亚洲精品欧洲精品 | 人人舔人人舔 | 激情五月六月婷婷 | 色婷婷精品 | 国产香蕉视频在线播放 | a色网站 | 免费网站看v片在线a | 日本三级久久久 | 久久高清| 国产三级国产精品国产专区50 | 亚州精品在线视频 | 亚洲在线观看av | 青草视频在线免费 | 国产亚洲va综合人人澡精品 | 日韩中文久久 | 国产精品系列在线观看 | 色吊丝av中文字幕 | 亚洲最大激情中文字幕 | 午夜av剧场 | 九九热只有精品 | 国产精品久久久久久一区二区 | 日韩精品在线观看av | 五月婷av| 男女视频国产 | 一区二区三区精品久久久 | 黄色大片免费网站 | 久久视频免费 | 久久久国产精品成人免费 | 一区二区理论片 | 色综合亚洲精品激情狠狠 | 亚洲精品资源在线 | 四虎国产 | 91日韩免费 | 欧美日韩亚洲第一页 | 亚洲高清久久久 | 欧美成人精品欧美一级乱黄 | 国产理论一区二区三区 | 久久免费精品一区二区三区 | 久久丝袜视频 | 亚洲一区二区高潮无套美女 | 日日爽天天 | 久久久久久草 | av高清免费在线 | 丁香花在线视频观看免费 | 99热9| 天天插伊人 | 天操夜夜操 | 亚洲国产精品成人va在线观看 | 麻豆国产在线播放 | 久久久久国产精品免费 | 国产亚洲综合性久久久影院 | 亚洲精品免费在线 | 国产成人福利在线观看 | 欧美 激情 国产 91 在线 | 一区在线观看视频 | 欧美福利视频 | 玖玖爱国产在线 | 免费电影一区二区三区 | 久久三级毛片 | 日韩中文字 | 欧美日韩免费一区二区 | 午夜av一区二区三区 | 精品久久久久亚洲 | 久久社区视频 | 日韩欧美久久 | 国产高清av在线播放 | 国产91亚洲 | 国产日产欧美在线观看 | 日本黄色免费网站 | 久久国产影院 | 亚洲三级黄色 | 国产不卡在线 | 香蕉网在线观看 | 欧美性色综合网 | 这里只有精品视频在线 | 人九九精品 | 天天做日日爱夜夜爽 | 亚洲视频1区2区 | 欧美性天天| www.av小说 | 国产精品第 | www视频在线播放 | 在线高清一区 | 亚洲最大av网站 | 国产日韩精品在线观看 | 国产最新在线观看 | 91在线视频精品 | 国产精品一区二区三区久久久 | 国产96在线视频 | 69久久久久久久 | av黄色免费在线观看 | 久久人人爽爽 | 最新免费av在线 | 欧美成年网站 | 中文字幕日韩免费视频 | 免费观看一级 | 国产精品福利无圣光在线一区 | 婷婷丁香激情网 | 久久99国产精品自在自在app | 久久久精品综合 | 五月天激情婷婷 | 69国产盗摄一区二区三区五区 | 久草热久草视频 | 国产精品黄 | 狠狠狠色丁香综合久久天下网 | 国产日韩欧美精品在线观看 | 日韩特黄一级欧美毛片特黄 | 久久久久久久久久久久久9999 | 国产99亚洲 | 免费在线观看成人小视频 | 香蕉色综合 | 国产97视频 | 午夜国产福利在线 | 久久精品影片 | www.亚洲黄色 | 国产69久久| 亚洲v欧美v国产v在线观看 | 丝袜网站在线观看 | 少妇性xxx| 婷婷99| 色综合久久中文字幕综合网 | 天天操天天射天天添 | 免费成人在线观看 | 日韩高清在线不卡 | 成人91在线| 黄色小网站在线观看 | 欧美不卡在线 | 亚洲精品在线免费播放 | 在线成人高清电影 | 粉嫩av一区二区三区四区在线观看 | 又色又爽又黄高潮的免费视频 | 国内免费久久久久久久久久久 | 久久久精品久久 | 国产国产人免费人成免费视频 | 日韩中文字幕免费电影 | 国产精品av一区二区 | www久久九| 久草干| 夜夜躁狠狠躁日日躁 | 91在线永久 | 久久国产美女视频 | 久久久精品影视 | 欧美成人基地 | 99视频一区 | 热久久视久久精品18亚洲精品 | 91av欧美| 久久综合久色欧美综合狠狠 | 久久精品视频3 | 97在线观看视频免费 | 国产精品第54页 | 4p变态网欧美系列 | 久久国产片 | 又色又爽又黄高潮的免费视频 | 国产精品手机在线 | 黄色免费观看视频 | 高清av免费观看 | 韩国一区二区三区在线观看 | 一区在线观看 | 狠狠天天 | 99r在线| 久久精品综合视频 | 久久一及片 | 久久看视频 | 日韩专区 在线 | 91色综合| 美女网站视频久久 | 日日操日日操 | 国产成人久久精品77777综合 | 伊人久久一区 | 免费在线视频一区二区 | 久久都是精品 | 五月婷婷网站 | v片在线看 | 国产一区二三区好的 | 丁香av | 亚洲精品视频免费在线观看 | 久草在线最新免费 | 五月婷婷丁香激情 | 开心婷婷色 | 五月精品 | 一级免费看| 中文字幕国产在线 | 狠狠操天天射 | 日韩欧美综合在线视频 | 久久亚洲综合国产精品99麻豆的功能介绍 | 97国产一区二区 | 香蕉视频久久 | 亚洲国产激情 | 亚洲天堂网视频在线观看 | 91最新网址在线观看 | 国产98色在线 | 日韩 | 97色免费视频 | 美女精品网站 | 国产精品18久久久久久久久久久久 | 久久久在线观看 | 在线观看你懂的网站 | 久日视频| 中文字幕在线播放日韩 | 中文字幕成人 | 久久公开免费视频 | 国产露脸91国语对白 | 欧美analxxxx| 免费观看一级成人毛片 | 日韩理论片中文字幕 | 国产在线a视频 | 日本三级不卡 | 亚洲精品视频免费在线 | 最新不卡av | 亚洲成a人片77777kkkk1在线观看 | 久草97| 日韩有码欧美 | 黄免费网站 | 久久免费的精品国产v∧ | 国产探花| 国产 在线 高清 精品 | 特级西西444www大胆高清无视频 | 奇米影视在线99精品 | 国产录像在线观看 | 91精品啪在线观看国产线免费 | 国产精品免费小视频 | 国内免费久久久久久久久久久 | 精品亚洲欧美无人区乱码 | 国内免费久久久久久久久久久 | 97超碰超碰久久福利超碰 | 国产精品女同一区二区三区久久夜 | 亚洲欧洲中文日韩久久av乱码 | 国产一区二区不卡在线 | 亚州五月 | 色婷婷天天干 | 国产真实精品久久二三区 | 亚洲一级影院 | www.日日日.com| 欧美日韩激情视频8区 | 免费成人黄色 | 麻豆视传媒官网免费观看 | 亚洲一区二区视频在线播放 | 91在线最新 | 91九色老| 久久激情综合网 | 六月色丁香 | 精品视频在线看 | 在线免费观看黄网站 | 日韩大陆欧美高清视频区 | www.狠狠操| 日本爱爱免费 | 91av资源网 | 国产欧美精品在线观看 | 国产精品嫩草55av | 日本公妇在线观看高清 | 韩日精品在线观看 | 狠狠ri| 免费福利在线 | 狠狠狠色丁香综合久久天下网 | 国产精品久久在线 | 国产一级黄色av | 美女av免费| 欧美色图东方 | 韩国av不卡 | 国产成人精品一区在线 | 91中文字幕在线视频 | 免费在线观看日韩视频 | 一区二区三区国产欧美 | 久久综合狠狠综合久久综合88 | 在线观看av片 | 久久午夜精品影院一区 | 欧美性大战 | 黄色片免费电影 | 国产成人精品av久久 | 国产99精品在线观看 | 欧美日韩亚洲国产一区 | 天天射天天干天天插 | 久草在线欧美 | 精品一区二区免费在线观看 | 99精品视频免费 | 欧美成a人片在线观看久 | 日韩视频免费 | 99热官网| 波多野结衣最新 | 免费一级日韩欧美性大片 | 精品国产一区二区三区久久影院 | 91传媒免费观看 | 91丨九色丨蝌蚪丰满 | av888.com| 一区二区三区精品在线视频 | 人人看人人草 | 91视频免费 | 色婷婷欧美 | 天无日天天操天天干 | 91人人射 | 在线观看视频国产 | 亚洲一区二区三区miaa149 | 久久久黄视频 | 久久精品一区二区三区国产主播 | 2018精品视频| 国产精品久久久久久久婷婷 | 99在线观看精品 | 国产激情久久久 | 亚洲电影影音先锋 | 亚洲国产免费 | 免费网站在线观看人 | 国产91精品高清一区二区三区 | 精品国产乱码久久久久久1区2匹 | 免费看91的网站 | 久久精品91视频 | 天堂va欧美va亚洲va老司机 | 欧美视频在线观看免费网址 | 高清av在线免费观看 | 视频在线一区二区三区 | 精品爱爱 | 在线影视 一区 二区 三区 | 久久婷婷一区二区三区 | 免费看短| 不卡的av在线播放 | 丁香一区二区 | 夜夜爽www | 天堂在线视频中文网 | 欧美日韩3p| 97色狠狠 | 国产精品久久久久久久久久久久久 | 丝袜美腿亚洲综合 | 久草在线在线视频 | 免费影视大全推荐 | 国产一区私人高清影院 | 国产视频精选在线 | 国产精品区在线观看 | 97精品超碰一区二区三区 | 五月天婷婷免费视频 | 久久免费99精品久久久久久 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 精品一区二区在线看 | 亚洲精品国产精品国自产在线 | 婷婷色影院 | 国产精品九九九九九九 | 欧美一级视频在线观看 | 91视频 - x99av| 一区二区三区动漫 | 在线日韩精品视频 | 中文字幕婷婷 | 九九视频热 | 五月香婷 | 99九九99九九九视频精品 | 丁香六月激情 | 日韩二区精品 | 999视频精品 | 亚洲黄在线观看 | 国产视频18 | 九色porny真实丨国产18 | 亚洲精品777 | 国产麻豆果冻传媒在线观看 | 日韩av视屏在线观看 | 97超碰在线久草超碰在线观看 | 欧美日韩在线视频一区二区 | 免费黄色激情视频 | 看毛片网站 | 色综合久久久久 | 日韩一级电影在线观看 | 日韩欧美在线视频一区二区 | 午夜av免费看 | 一区二区三区高清在线 | 日韩欧美99| 国产精品久久婷婷六月丁香 | 国产精品专区在线 | 久久超级碰视频 | 99视频国产精品免费观看 | 国产v视频| 午夜三级在线 | 九九涩涩av台湾日本热热 | www.久久成人 | 免费福利在线观看 | 在线国产99| 日日干日日 | 久久最新网址 | 国产一级免费av | 久久国语露脸国产精品电影 | 国产一区二区午夜 | 五月天综合网站 | 久久一区二区三区超碰国产精品 | 国产精品久久久久久久久免费 | 久久精品一二三区白丝高潮 | 国产成人福利在线 | 亚洲天堂首页 | 亚洲一区二区视频在线 | 激情五月在线观看 | av一区在线播放 | av福利免费 | 高清一区二区 | 亚洲女欲精品久久久久久久18 | 精品在线观看一区二区 | 亚洲一区网站 | 日韩精品在线免费播放 | 在线免费观看羞羞视频 | 国产精品18久久久久久久网站 | 日b黄色片 | 亚洲精品合集 | 免费观看黄 | 国产精品久久久久久久午夜片 | 久久国产欧美日韩精品 | 国产一级免费视频 | 国产精品久久久久四虎 | 欧美激情视频久久 | 欧美超碰在线 | 亚洲毛片在线观看. | 免费国产在线视频 | 久久不射影院 | 日本中文字幕电影在线免费观看 | 99精品一区二区 | 欧美日韩国产在线观看 | 91视频免费网站 | 日本在线观看视频一区 | 亚洲视频 中文字幕 | 国产精品一区二区av | 久久国产精品免费看 | 成人免费在线播放 | 一区二区 不卡 | 久久人人精品 | 97国产超碰| 国产视频中文字幕在线观看 | 91成人在线观看高潮 | 日韩va亚洲va欧美va久久 | 麻豆视频免费播放 | 91秒拍国产福利一区 | 97精品国产97久久久久久粉红 | 亚洲欧美日韩国产一区二区三区 | 人人插人人费 | av色一区 | 亚洲在线色 | 国产精品视频永久免费播放 | 久久久国产一区二区 | 精品国产一区二区三区在线观看 | 中文字幕视频一区二区 | 中文字幕一区二区三 | 国产高清久久久 | 精品成人a区在线观看 | 国产aaa免费视频 | 天天干夜夜爽 | 久久亚洲综合国产精品99麻豆的功能介绍 | 免费看色的网站 | 日韩日韩日韩日韩 | 亚洲www天堂com| 天天色天天综合网 | 亚洲永久在线 | 91网在线| 国产999精品 | 蜜臀av性久久久久av蜜臀三区 | 国产黄色片久久 | 午夜10000 | 中文字幕一区二区三区乱码在线 | 亚洲综合在线五月 | 国产精品一区一区三区 | 久久精品96 | 久久亚洲综合色 | 国产91免费在线 | 久久国产精品久久国产精品 | 中文字幕在线免费观看 | 国产麻豆成人传媒免费观看 | 国产精品黄色在线观看 | 国产伦精品一区二区三区无广告 | 国产中文字幕av | 五月天婷婷综合 | 久久国产网 | 精品国产乱码久久久久久三级人 | 免费看一级一片 | 人人干人人做 | 久久情爱 | 久久不卡日韩美女 | 国产在线v| 黄色视屏av | 欧美激情另类文学 | 亚洲精品 在线视频 | 综合久久2023 | 中文有码在线 | 综合网五月天 | 在线观看亚洲a | 国产呻吟在线 | 欧美a级在线免费观看 | 精品久久一区二区三区 | 黄色毛片一级片 | 97视频在线观看视频免费视频 | 中文字幕在线观看免费观看 | 精品毛片久久久久久 | 2021国产视频 | 在线视频99 | 久久情爱| 精品视频在线免费观看 | 国产免费小视频 | 亚洲免费小视频 | av片中文 | 日韩电影在线看 | 国产区在线视频 | 日韩精品在线一区 | 一级理论片在线观看 | 久久免费观看视频 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 又大又硬又黄又爽视频在线观看 | 成人黄色片在线播放 | 亚洲国产精品电影 | 一本一道久久a久久综合蜜桃 | 五月天激情开心 | www成人av| 2022中文字幕在线观看 | 九九在线精品视频 | 亚洲最快最全在线视频 | 国产又粗又猛又爽又黄的视频免费 | 最近免费中文字幕mv在线视频3 | www.久久免费 | 日日操日日操 | 精品久久久久久综合日本 | 亚洲精品国产区 | 韩日精品中文字幕 | 超碰九九 | 午夜视频黄 | 亚洲最新合集 | 人人干人人添 | 天天干天天拍天天操 | 精品一区二区免费在线观看 | 99久久日韩精品视频免费在线观看 | 高清av在线 | 国产精品网址在线观看 | 毛片网站观看 | 麻豆视频在线播放 | 正在播放日韩 | 99久久毛片| 成人黄色中文字幕 | 日韩黄色免费电影 | 日韩91精品 | 网站免费黄 | 美州a亚洲一视本频v色道 | 久久久高清视频 | 久久精品91视频 | 久久免费视频国产 | 久久精品xxx| 91av免费观看 | 最近日本中文字幕 | 国产一级91 | 人人草网站| 国产黄色免费在线观看 | 久久网站免费 | 狠狠狠色丁香婷婷综合久久88 | 国产又黄又硬又爽 | 国产伦理久久精品久久久久_ | 香蕉久久久久 | 中文字幕一区二区三区四区 | 亚洲高清不卡av | 日本91在线| 狠狠狠狠狠操 | 黄色一级免费网站 | 人人躁 | 国产高清在线免费观看 | 91在线观看黄 | 久久只精品99品免费久23小说 | www.狠狠插.com | 色网站中文字幕 | 91在线视频免费播放 | 日韩中文免费视频 | 99精品视频在线观看免费 | 丁香婷婷综合五月 | 综合网中文字幕 | 国产99久久久精品 | 干亚洲少妇 | 日韩在线视频一区二区三区 | 国产91aaa| 欧美日本高清视频 | 国产a精品 | 精品一区av| 亚洲成人一区 | 国产日韩欧美视频 | 中文字幕91 | 最近中文字幕大全 | 96av麻豆蜜桃一区二区 | 久久免费视频在线观看6 | 欧美精彩视频 | 久久久久久久久久免费 | 成人一级影视 | 日韩素人在线观看 | 国产亚洲精品成人 | 成人在线免费看 | 一区二区影视 | 天天艹天天爽 | 亚洲高清视频在线观看 | 精品天堂av | 国产免费激情久久 | 欧美午夜一区二区福利视频 | 九色视频网站 | 国产精品国产三级国产aⅴ入口 | 国产理伦在线 | 国产视频99 | 国产精品久久久久久久久久白浆 | 亚洲视频久久久 | 中文在线a√在线 | 精品欧美一区二区三区久久久 | 免费黄色在线播放 | 91黄色在线看 | 一区二区三区福利 | 色综合久久综合中文综合网 | 91精品国产成人www | 久久久三级视频 | 日韩中文字幕视频在线观看 | 国产亚洲视频在线免费观看 | 又黄又爽的视频在线观看网站 | 99色资源 | 中文字幕久久精品亚洲乱码 | 91精品国产91热久久久做人人 | www.夜夜操.com | 一区二区三区免费在线 | 91福利视频免费观看 | 国产成人av在线 | 国产精品免费不卡 | 国产成人av一区二区三区在线观看 | 亚洲国产精品久久 | 亚洲国产精品电影在线观看 | 国产精品videossex国产高清 | 久草视频免费在线播放 | 亚洲一级免费观看 | 91污污| 国产精品一区二区果冻传媒 | 男女免费视频观看 | 在线免费观看国产 | 成人午夜精品 | 伊人亚洲综合网 | 中文字幕有码在线播放 | 欧美性生活小视频 | 国产伦精品一区二区三区在线 | 久久人视频 | 综合激情网 | 欧美 日韩 国产 成人 在线 | 国产视频69 | 午夜视频在线观看一区二区三区 | 免费在线一区二区三区 | 91精品欧美 | 国产精品国内免费一区二区三区 | 午夜国产福利在线观看 | 亚洲精品乱码久久久久 | 菠萝菠萝在线精品视频 | 日本久久影视 | 国产精品色婷婷视频 | 亚洲欧美一区二区三区孕妇写真 | 国产福利中文字幕 | 在线电影日韩 | 国产成人精品电影久久久 | 在线成人一区二区 | 欧美精品一区二区蜜臀亚洲 | 91爱看片| 97成人在线 | 免费精品视频在线 | 四虎在线免费观看视频 | 毛片1000部免费看 | 激情久久网 | 日韩精品大片 | 日韩精品久久久久久久电影竹菊 | 国产精品美女久久久久久2018 | a在线观看视频 | 成人免费看黄 | 国产麻豆精品久久一二三 | 不卡的一区二区三区 | 亚洲va在线va天堂 | 久久精品国产成人 | 日韩欧美在线视频一区二区三区 | 国产精品一区二区久久 | 三级av中文字幕 | 国产成人在线免费观看 | 日韩午夜电影网 | 中文字幕在线观看你懂的 | 色婷婷色 | 欧美成年黄网站色视频 | 天天操天天爽天天干 | 中文字幕在线观看不卡 | 亚洲三级在线免费观看 | 日韩在线免费高清视频 | 免费在线一区二区三区 | 国产日韩欧美中文 | 国产日韩在线一区 | 一区在线免费观看 | 97超碰香蕉 | 激情伊人五月天久久综合 | 免费av在线网 | 五月天伊人网 | 精品久久久久久一区二区里番 | 亚洲 欧美 国产 va在线影院 | 天天射天 | 国产精品18久久久久白浆 | 国产视频午夜 | 久久伊人精品天天 | 99热这里精品 | 狠狠撸电影 | 欧美久久久久久久 | 欧美少妇xxx | 蜜臀久久99精品久久久无需会员 | 伊人五月在线 | 一级a毛片高清视频 | 久久字幕 | 在线视频 一区二区 | 麻豆免费精品视频 | 91爱爱视频 | 片黄色毛片黄色毛片 | 久久综合久久八八 | 日韩色综合网 | 色视频 在线| 最近更新好看的中文字幕 | 国产黄色片免费观看 | 日韩四虎 | 日韩高清成人 | 国产最新网站 | 天堂在线一区 | 国产一级黄色片免费看 | 国产欧美精品一区二区三区 | 69精品视频在线观看 | 精品自拍网 | 国产视频精品在线 | 日韩一区二区免费播放 | 奇米导航| 美女久久视频 | 久热电影 | 五月激情久久 | 国产日韩欧美在线一区 | 国产精品久久久久久久久久99 | 欧美激情综合五月色丁香小说 | 午夜在线免费观看视频 | 8x成人免费视频 | 国产精品一区二区av日韩在线 | 国产一区自拍视频 | 色婷婷狠狠五月综合天色拍 | 狠狠成人 | 欧美日韩在线观看一区 | 国产一二区视频 | 欧美精品一区二区蜜臀亚洲 | 国产黄色资源 | 日日草夜夜操 | 久久热亚洲| 久久久久99999 | 亚洲撸撸| 国产美女网站在线观看 | 超碰在线人 | 最近中文字幕mv | 悠悠av资源片 | 伊人午夜视频 | 欧美一级视频一区 | 中文字幕色网站 | 久久99国产精品久久99 | 久久桃花网 | 在线观看欧美成人 | 日韩一区二区免费视频 | 狠狠操狠狠操 | av在线一级| 色综合久久久久综合体 | 国产一级a毛片视频爆浆 | 97超碰人人澡人人爱 | 亚州精品国产 | 黄色国产成人 | 中文字幕在线播放第一页 | zzijzzij亚洲成熟少妇 | 国产69熟 | 亚洲在线看| 操高跟美女 | 俺要去色综合狠狠 | 国产视频 久久久 | 91成人在线观看高潮 | 在线国产专区 | 国产成人香蕉 | 十八岁免进欧美 | 精品视频在线观看 | 国产午夜精品久久久久久久久久 | 激情开心 | 久久久久久久久久免费 | 国产成人福利在线 | 蜜臀一区二区三区精品免费视频 | 午夜精品视频一区二区三区在线看 | 亚洲精品日韩一区二区电影 | 亚洲国产视频a | 亚洲在线高清 | 天天鲁天天干天天射 | 国产综合91 | 日韩三级视频 | 极品嫩模被强到高潮呻吟91 | 亚洲午夜精品在线观看 | 91在线porny国产在线看 | 成年人在线免费看 | 在线观看国产高清视频 | 国产精品一区二区精品视频免费看 | 99人成在线观看视频 | 国产又粗又猛又爽 | 欧美特一级 | 日韩在线无 | 五月婷丁香网 | 久久久久久不卡 | 亚洲第一色 | 在线观看黄色大片 | 在线观看一区 | 97超级碰碰碰视频在线观看 | 91在线视频在线 | 日韩1页 | 国产精品久久久久久久久软件 | 99在线热播 | 精品久久视频 | 西西444www大胆高清视频 | 69亚洲精品 | av在线色| 操操操日日日干干干 | 91人人视频在线观看 | 国产精品热视频 | 欧美日韩高清 | 成年人黄色免费看 | 天天射天天 | 国产精品美女久久久久久2018 | 国产精品久久久视频 | 国产污视频在线观看 | 久久精品亚洲国产 | 狠狠色丁香久久综合网 | 成人在线视频论坛 | 亚洲国产精品久久 | 黄色小视频在线观看免费 | 欧美另类sm图片 | 在线观看免费高清视频大全追剧 | 黄色片视频免费 | 日韩天堂在线观看 | 国产精品久久久久一区二区国产 | 国产精品女同一区二区三区久久夜 | 久久久久久久久久久网 | 欧美巨大 | 天天天干天天天操 | 精品视频免费久久久看 | 国产精品久久久久久久久久久杏吧 | 亚洲成人影音 | 91亚洲国产成人 | 久久久久久免费毛片精品 | 亚洲桃花综合 | 国产无遮挡猛进猛出免费软件 | 精品少妇一区二区三区在线 | 99r在线观看| 2019av在线视频| 97免费在线观看视频 | 日韩在线色 | 91探花国产综合在线精品 | 久草在线资源免费 | 国产精品一区一区三区 | 亚洲另类视频在线 | 午夜精品一区二区三区在线 | 激情欧美一区二区三区 | 免费三级骚 | 国产一区播放 | 午夜精品视频免费在线观看 | 欧美日韩激情视频8区 | 亚洲国产精品人久久电影 | 免费看的黄色网 | 国产自制av| 最近字幕在线观看第一季 | 欧美一区二区在线看 | 久久中文欧美 | 国产一区电影在线观看 | 天天狠狠操 | 一区二区三区av在线 | 99久久精品国产一区二区三区 | 成人h视频在线播放 | 在线观看不卡视频 | 国产精品一区二区在线观看免费 | 999精品网 | 99精品免费久久久久久日本 | 中文字幕在线观看一区 | 激情伊人五月天 | 在线观看日本韩国电影 | av性网站| 久久久国产高清 | 91成品视频 | 99久久9| 日韩欧美在线视频一区二区 | 91色偷偷| 国产看片免费 | 午夜国产福利视频 | 一区二区高清在线 | 91黄色在线观看 | www.国产精品| 亚洲精品国产第一综合99久久 | 久久精品国产免费 | 中文字幕二区三区 | 亚洲视频精品在线 | 国产资源av | 99在线高清视频在线播放 | 天天射成人| 国产亲近乱来精品 | 欧美在线观看视频一区二区三区 | 91在线成人 | 五月综合 | 99精品国产视频 | www操操操 | 91精品国产乱码 | 国产一级免费在线观看 | 97超碰精品 | 亚洲一级免费观看 | 手机看片国产 | 夜夜操天天干, | 夜夜高潮夜夜爽国产伦精品 | 亚洲免费专区 | 播五月婷婷 | 午夜精品久久久久久久99 | 日韩在线观看的 | 久久午夜国产精品 | 精品国产成人av | 国产高清在线免费视频 | 中文字幕亚洲精品日韩 | 国产一二区精品 | 婷婷伊人五月天 | 中文在线a∨在线 | 欧美激情视频在线观看免费 | 日韩精品视频网站 | 成人中文字幕av | 久久99精品波多结衣一区 | 四虎免费av | 98涩涩国产露脸精品国产网 | 色婷婷视频在线 | 日韩在线国产精品 | 国产一级电影网 | 国产手机视频在线 | 一区二区三区日韩在线 | 最近中文字幕大全中文字幕免费 | 久久精品国产免费观看 | 在线观看亚洲精品视频 | 中文国产字幕 | 日韩videos高潮hd| 亚洲国产99 | 国产一区二区三区网站 | 精品国产乱码久久久久久浪潮 | 免费观看9x视频网站在线观看 | 日韩激情第一页 | 国产第一福利网 | 99视频在线看 | 国产精品久久久一区二区 | 国产麻豆精品久久 | 偷拍久久久 | 在线观看视频一区二区三区 | 99热免费在线 | 最近中文国产在线视频 | 久久97精品| 亚洲精品视频在线播放 | 午夜免费电影院 | 国内外成人在线视频 | 亚洲日韩欧美一区二区在线 | 在线 视频 亚洲 | 在线高清av| 亚洲精品美女久久久 | 91在线超碰 | 六月丁香伊人 | av经典在线| 国产精品毛片一区二区在线 | 亚洲一区日韩 | 999国产在线 | 亚洲视频一 | 一区 二区 精品 | 日韩免费在线视频 | 国产一区二区精品久久91 | 亚洲国产日韩精品 | 欧美成人xxxx | 久久99热久久99精品 | 中文字幕一区二区三区四区视频 | 91亚洲影院 | 国产日韩欧美在线观看视频 | 国产精品视频久久久 | 成人av免费在线看 | 日韩午夜视频在线观看 | 国产裸体bbb视频 | 91人人爽人人爽人人精88v | 91激情视频在线观看 | 91资源在线播放 | 中文字幕免费观看全部电影 | 狠狠干天天射 | 能在线看的av | 中文字幕永久在线 | 国产精品99爱 | 国产精品午夜在线观看 | 国产中文自拍 | 免费v片 |