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

    淺析C語(yǔ)言運(yùn)算符及表達(dá)式的教學(xué)誤區(qū)

    2019-04-08 00:46:50熊志斌
    現(xiàn)代計(jì)算機(jī) 2019年6期
    關(guān)鍵詞:運(yùn)算符逗號(hào)副作用

    熊志斌

    (海南熱帶海洋學(xué)院藝術(shù)與創(chuàng)意學(xué)院,三亞572022)

    0 引言

    C語(yǔ)言是一門優(yōu)秀的程序設(shè)計(jì)語(yǔ)言,以功能強(qiáng)大、語(yǔ)法靈活、易移植等特點(diǎn)而著稱。自上世紀(jì)70年代以來(lái),C語(yǔ)言一直是最受歡迎的編程語(yǔ)言之一,廣泛用于系統(tǒng)應(yīng)用開(kāi)發(fā)。我國(guó)高校計(jì)算機(jī)專業(yè)把C語(yǔ)言作為編程入門課程,許多工科專業(yè)也把C語(yǔ)言作為必修課或選修課,因此提高C語(yǔ)言教學(xué)質(zhì)量,具有重要的意義。筆者發(fā)現(xiàn)在一些教材、教改論文中把一些錯(cuò)誤表達(dá)式當(dāng)成正確的代碼來(lái)分析、講解,如下面類似的錯(cuò)誤表達(dá)式,在許多教材、教改論文分析、討論,也出現(xiàn)在等級(jí)考試、企業(yè)招聘試題中:

    其實(shí),這些表達(dá)式都是錯(cuò)誤的,會(huì)導(dǎo)致未定義行為(Undefined Behavior),C標(biāo)準(zhǔn)對(duì)未定義行為的解釋是,使用不可移植的或錯(cuò)誤的程序結(jié)構(gòu),以及使用錯(cuò)誤數(shù)據(jù)的行為,而標(biāo)準(zhǔn)對(duì)這種行為沒(méi)有強(qiáng)制性的要求[1-2]。C標(biāo)準(zhǔn)定義了很多未定義行為,表達(dá)式導(dǎo)致的未定義行為只是其中之一。C標(biāo)準(zhǔn)不要求編譯器負(fù)責(zé)診斷這種未定義行為,因此,一些未定義行為在編譯時(shí)能通過(guò),程序也可以正確執(zhí)行。正是在某些平臺(tái)能編譯執(zhí)行這些錯(cuò)誤代碼,才使得它們被當(dāng)成正確的代碼被分析、被討論、被考試。但并不能保證這些代碼在不同編譯器中都能通過(guò),也不能保證在不同平臺(tái)都可以正確執(zhí)行。

    把這些錯(cuò)誤的表達(dá)式當(dāng)成正確的代碼分析、講授,即不能使學(xué)生掌握正確的C語(yǔ)法知識(shí),也不利于培養(yǎng)學(xué)生的優(yōu)良編程風(fēng)格。本文試圖從C標(biāo)準(zhǔn)出發(fā),正本溯源,去蕪存菁,通過(guò)介紹序列點(diǎn)和副作用,澄清“表達(dá)式求值按運(yùn)算符優(yōu)先級(jí)順序從左到右計(jì)算,同級(jí)運(yùn)算符按結(jié)合性方向計(jì)算”的模糊認(rèn)識(shí),剖析導(dǎo)致未定義行為的表達(dá)式的錯(cuò)誤根源,以供C語(yǔ)言教學(xué)時(shí)參考。

    1 相關(guān)的重要概念

    與運(yùn)算符及表達(dá)式相關(guān)的重要概念,除教材上介紹的運(yùn)算符優(yōu)先級(jí)和結(jié)合性外,C標(biāo)準(zhǔn)定義的副作用(Side Effects)和序列點(diǎn)(Sequence Point)也是不可或缺的兩個(gè)概念。教材出于內(nèi)容簡(jiǎn)單明了,易于學(xué)習(xí)的考慮,盡量回避復(fù)雜的概念,因此教材在介紹運(yùn)算符及表達(dá)式相關(guān)知識(shí)時(shí),基本回避了副作用和序列點(diǎn),國(guó)內(nèi)外的經(jīng)典教材都是如此[3-4]。筆者在教學(xué)中發(fā)現(xiàn),在講授運(yùn)算符及表達(dá)式時(shí),引入上述兩個(gè)概念是大有裨益的,能幫助學(xué)生正確地理解運(yùn)算符及表達(dá)式的知識(shí)。

    1.1 副作用

    C標(biāo)準(zhǔn)對(duì)副作用的定義是,訪問(wèn)易變(Volatile)型變量、修改變量、修改文件、以及調(diào)用執(zhí)行前述操作的函數(shù)都是副作用[2]。副作用可以簡(jiǎn)單理解成,作為表達(dá)式求值過(guò)程中的副產(chǎn)品,某些變量的值發(fā)生了修改[5]。例如表達(dá)式:

    表達(dá)式(1)是一個(gè)算術(shù)表達(dá)式,在計(jì)算表達(dá)式a+b的值時(shí),變量b的值也會(huì)發(fā)生修改,修改變量的值就是副作用。表達(dá)式(2)是一個(gè)賦值表達(dá)式,表達(dá)式的值為5,變量a的值被修改成5,也是發(fā)生副作用。副作用并非是不受歡迎的副產(chǎn)品,而是修改變量值的一個(gè)手段。

    1.2 序列點(diǎn)

    序列點(diǎn)是程序執(zhí)行中的一個(gè)點(diǎn),在這個(gè)點(diǎn)之前,前面的表達(dá)式的求值和副作用已經(jīng)完成,而后面表達(dá)式的求值和副作用還沒(méi)有發(fā)生[2]。C標(biāo)準(zhǔn)定義以下序列點(diǎn)[2]:

    (1)運(yùn)算符&&;運(yùn)算符||;逗號(hào)運(yùn)算符,;條件運(yùn)算符?:的第一個(gè)子表達(dá)式求值結(jié)束后;

    (2)函數(shù)調(diào)用運(yùn)算符()中對(duì)所有實(shí)參數(shù)完成求值之后;

    (3)每個(gè)完整表達(dá)式結(jié)束時(shí)。完整表達(dá)式包括變量初始化表達(dá)式,表達(dá)式語(yǔ)句的表達(dá)式,return語(yǔ)句的表達(dá)式,if或switch語(yǔ)句中的控制表達(dá)式,while或do語(yǔ)句的控制表達(dá)式,for語(yǔ)句的所有三個(gè)表達(dá)式;

    (4)標(biāo)準(zhǔn)庫(kù)函數(shù)返回之前,標(biāo)準(zhǔn)輸入輸出函數(shù)格式化轉(zhuǎn)換說(shuō)明符關(guān)聯(lián)動(dòng)作之后,標(biāo)準(zhǔn)查找函數(shù)和排序函數(shù)在調(diào)用比較函數(shù)之前和之后及參數(shù)傳遞之后.

    由序列點(diǎn)的定義可知,與運(yùn)算符&&;或運(yùn)算符||;逗號(hào)運(yùn)算符,;條件運(yùn)算符?:等4個(gè)運(yùn)算符的左操作數(shù)屬于前一個(gè)序列點(diǎn),右操作數(shù)屬于后一個(gè)序列點(diǎn),因此,這4個(gè)運(yùn)算符的左操作數(shù)的求值要先于右操作數(shù)完成,本文第2節(jié)詳細(xì)分析這4個(gè)運(yùn)算符。每個(gè)表達(dá)式語(yǔ)句后存在一個(gè)序列點(diǎn),體現(xiàn)在程序里就是語(yǔ)句后的分號(hào)“;”是一個(gè)序列點(diǎn)。

    2 深入理解操作數(shù)的求值順序

    2.1 求值順序的不確定性

    C標(biāo)準(zhǔn)規(guī)定,在兩個(gè)序列點(diǎn)之間,運(yùn)算符的子表達(dá)式(操作數(shù))的求值順序和副作用的發(fā)生順序,屬于未規(guī)定行為[2]。

    C標(biāo)準(zhǔn)對(duì)未規(guī)定行為的定義是,標(biāo)準(zhǔn)提供了兩種及以上的可能性,但在具體實(shí)現(xiàn)中并未強(qiáng)制選擇哪種可能性[2]。C標(biāo)準(zhǔn)定義了很多未規(guī)定行為,對(duì)未規(guī)定行為采取何種可能的方式實(shí)現(xiàn),取決于編譯器。未規(guī)定行為和未定義行為有本質(zhì)區(qū)別的,未定義行為是一種嚴(yán)重的程序錯(cuò)誤,而未規(guī)定行為是C標(biāo)準(zhǔn)有意為之,目的是給編譯器提供優(yōu)化空間,以便提高C程序的效率。根據(jù)序列點(diǎn)的定義可知,除與運(yùn)算符&&;或運(yùn)算符||;逗號(hào)運(yùn)算符,;條件運(yùn)算符?:之外,其他雙目運(yùn)算符,左右操作數(shù)的求值順序是不確定的,發(fā)生副作用的順序也是不確定的;在函數(shù)調(diào)用運(yùn)算符()構(gòu)成的表達(dá)式里,函數(shù)名和各實(shí)參的求值順序和副作用發(fā)生的順序也是不確定的。

    2.2 存在序列點(diǎn)的表達(dá)式

    與運(yùn)算符&&;或運(yùn)算符||;逗號(hào)運(yùn)算符,;條件運(yùn)算符?:;函數(shù)調(diào)用運(yùn)算符()等5個(gè)運(yùn)算符和操作數(shù)構(gòu)成的表達(dá)式中存在序列點(diǎn),者決定了它們的運(yùn)算性質(zhì)與其他運(yùn)算符不同。

    (1)邏輯與運(yùn)算符及表達(dá)式

    邏輯與運(yùn)算符&&和操作數(shù)構(gòu)成邏輯與表達(dá)式,一般形式為:

    表達(dá)式1&&表達(dá)式2

    邏輯與表達(dá)式的求值規(guī)則是:表達(dá)式1在&&左側(cè),屬于前一個(gè)序列點(diǎn),因此首先計(jì)算表達(dá)式1的值,如果表達(dá)式1的值為0,則提前終止表達(dá)式2的計(jì)算(邏輯與的短路計(jì)算性質(zhì)),只有當(dāng)表達(dá)式1的值為1時(shí),才開(kāi)始計(jì)算表達(dá)式2的值。例如:

    (a+1)&&(--b>1)

    當(dāng)a的值為-1,b的值為2時(shí),雖然表達(dá)式中自減運(yùn)算符的優(yōu)先級(jí)最高,但(a+1)在&&左側(cè),屬于前一個(gè)序列點(diǎn),因此首先計(jì)算(a+1)的值為0,可以判斷整個(gè)邏輯表達(dá)式的值為0,表達(dá)式--b>1的值來(lái)不及計(jì)算就被終止了,變量b的值保持不變。

    (2)邏輯或運(yùn)算符及表達(dá)式

    邏輯或運(yùn)算符||和操作數(shù)構(gòu)成邏輯或表達(dá)式,一般形式為:

    表達(dá)式1||表達(dá)式2

    邏輯或表達(dá)式的求值規(guī)則是:表達(dá)式1在||左側(cè),屬于前一個(gè)序列點(diǎn),因此首先計(jì)算表達(dá)式1的值,如果表達(dá)式1的值為1,則提前終止表達(dá)式2的計(jì)算(邏輯或的短路計(jì)算性質(zhì)),只有當(dāng)表達(dá)式1的值為0時(shí),才開(kāi)始計(jì)算表達(dá)式2的值。例如:

    (a>b)||(++b>1)

    當(dāng)變量a為2,變量b為1時(shí),首先求a>b的值為1,則整個(gè)邏輯表達(dá)式的值為1,表達(dá)式++b>1來(lái)不及計(jì)算就被終止,變量b的值保持不變。

    (3)條件運(yùn)算符及表達(dá)式

    條件運(yùn)算符?:需要3個(gè)操作數(shù)構(gòu)成條件表達(dá)式,一般構(gòu)成形式:

    表達(dá)式1?表達(dá)式2:表達(dá)式3

    條件表達(dá)式的求值規(guī)則是:表達(dá)式1位于?號(hào)前,屬于前一個(gè)序列點(diǎn),首先計(jì)算表達(dá)式1的值,若表達(dá)式1的值為真,則條件表達(dá)式的值取表達(dá)式2的值,表達(dá)式3不被執(zhí)行;否則,條件表達(dá)式的值取表達(dá)式3的值,而表達(dá)式2不被執(zhí)行。表達(dá)式2和表達(dá)式3只能執(zhí)行其中的一個(gè)。例如:

    i>j?2*k:++m

    當(dāng)i為2,j為1,k為3,m為4時(shí),雖然乘法運(yùn)算符和自增運(yùn)算符的優(yōu)先級(jí)都高于大于運(yùn)算符,但表達(dá)式i>j屬于前一個(gè)序列點(diǎn),因此首先求得表達(dá)式i>j的值為1,再執(zhí)行表達(dá)式2*k,不執(zhí)行表達(dá)式++m。所以條件表達(dá)式的值為6,m的值保持不變。

    (4)逗號(hào)運(yùn)算符及表達(dá)式

    逗號(hào)作運(yùn)算符需要兩個(gè)操作數(shù)構(gòu)成逗號(hào)表達(dá)式,一般形式為:

    表達(dá)式1,表達(dá)式2

    逗號(hào)表達(dá)式求值規(guī)則是:表達(dá)式1位于逗號(hào)運(yùn)算符之前,屬于前一個(gè)序列點(diǎn),先求解表達(dá)式1,再求解表達(dá)式2,表達(dá)式2的值是整個(gè)逗號(hào)表達(dá)式的值。例如:

    i=25+5,i*6

    雖然表達(dá)式中乘法運(yùn)算符*的優(yōu)先級(jí)最高,但i=25+5位于逗號(hào)運(yùn)算符之前,屬于前一個(gè)序列點(diǎn),因此先計(jì)算賦值表達(dá)式i=25+5,得到i的值為30,然后計(jì)算i*6,得180,整個(gè)逗號(hào)表達(dá)式的值為180。

    (5)函數(shù)調(diào)用運(yùn)算符()

    函數(shù)調(diào)用運(yùn)算符的一般形式為:f(參數(shù)1,參數(shù)2,參數(shù)3)。對(duì)于函數(shù)調(diào)用運(yùn)算符有兩點(diǎn)需要注意:一是參數(shù)之間的逗號(hào),不是逗號(hào)運(yùn)算符,是分隔符;二是函數(shù)名、各參數(shù)的求值順序是未規(guī)定行為,取決于編譯器的實(shí)現(xiàn)。有些參考書(shū)籍上說(shuō)函數(shù)的各參數(shù)的求值順序是從左到右求值,這是不正確的,C標(biāo)準(zhǔn)本身沒(méi)有規(guī)定實(shí)參的求值順序。

    2.3 序列點(diǎn)的好處

    認(rèn)真分析表達(dá)式的構(gòu)成,充分利用表達(dá)式中序列點(diǎn)前表達(dá)式先計(jì)算的特性,可以寫出簡(jiǎn)潔高效,風(fēng)格優(yōu)雅的C程序代碼。如程序需要從鍵盤讀取數(shù)字,直到用戶輸入0時(shí)為止,則可以寫成如下風(fēng)格的代碼:

    寫邏輯與表達(dá)式時(shí),把最基本的條件放在第一個(gè)表達(dá)式,首先被執(zhí)行,如果值為假,后面就不用計(jì)算。如防止除0運(yùn)算:

    a!=0&&b/a>5

    這樣就可以避免當(dāng)a值為0時(shí),導(dǎo)致除0的異常。再如防止數(shù)組越界

    i0

    寫邏輯或表達(dá)式時(shí),可以讓某些運(yùn)算首先執(zhí)行,增加程序的效率。如閏年的滿足條件是:能被4整除而不能被100整除,或者能被400整除??捎眠壿嫳磉_(dá)式來(lái)表示:

    表達(dá)式(3)的執(zhí)行效率比表達(dá)式(4)執(zhí)行效率高。

    3 表達(dá)式的求值過(guò)程

    在計(jì)算表達(dá)式的值時(shí),先根據(jù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性地解析表達(dá)式,無(wú)論多復(fù)雜的一個(gè)表達(dá)式,經(jīng)過(guò)優(yōu)先級(jí)和結(jié)合性對(duì)表達(dá)式進(jìn)行解析后,最終都可以解析成某個(gè)基本運(yùn)算符表達(dá)式結(jié)構(gòu)(如屬于賦值表達(dá)式、條件表達(dá)式)。判斷依據(jù)就是表達(dá)式中最外層執(zhí)行的運(yùn)算符。解析過(guò)程中,從左到右利用運(yùn)算符的優(yōu)先級(jí)構(gòu)成子表達(dá)式,同級(jí)運(yùn)算符用結(jié)合性構(gòu)成子表達(dá)式。

    表達(dá)式(5)等價(jià)于(x>y)?++y:((++y>2)?y:100),所以表達(dá)式(5)是一個(gè)條件表達(dá)式。

    解析成基本運(yùn)算符表達(dá)式結(jié)構(gòu)后,考察基本運(yùn)算符是否構(gòu)成序列點(diǎn),按序列點(diǎn)的前后順序計(jì)算子表達(dá)式。C語(yǔ)言中只有與運(yùn)算符&&;或運(yùn)算符||;逗號(hào)運(yùn)算符,;條件運(yùn)算符?:;函數(shù)調(diào)用運(yùn)算符()等5個(gè)基本運(yùn)算符構(gòu)成的表達(dá)式中存在序列點(diǎn),因此這些表達(dá)式求值,總是先執(zhí)行序列點(diǎn)之前的子表達(dá)式,然后執(zhí)行序列點(diǎn)之后的子表達(dá)式。其他基本運(yùn)算符構(gòu)成的表達(dá)式不存在序列點(diǎn),子表達(dá)式求值順序和副作用發(fā)生順序則是不確定的。

    表達(dá)式(5)中,條件運(yùn)算符雖然是右結(jié)合性,但并不是先計(jì)算子表達(dá)式((++y>2)?y:100),而是先計(jì)算屬于前一個(gè)序列點(diǎn)的子表達(dá)式(x>y)。當(dāng)x值為1,y值為1時(shí),條件表達(dá)式的值為100;當(dāng)x值為2,y值為1時(shí),表達(dá)式的值為2。

    4 導(dǎo)致未定義行為的表達(dá)式

    C標(biāo)準(zhǔn)定義了很多未定義行為,對(duì)于表達(dá)式而言,標(biāo)準(zhǔn)規(guī)定,兩個(gè)序列點(diǎn)之間,一個(gè)變量被多次修改,或被修改一次同時(shí)發(fā)生了不是為了存儲(chǔ)而讀取變量的操作,會(huì)導(dǎo)致未定義行為[2]。

    (1)變量被修改多次

    上面兩個(gè)表達(dá)式的變量都發(fā)生多次修改,因此是未定義行為。變量修改的時(shí)間點(diǎn)是不確定的,這種不確定導(dǎo)致表達(dá)式結(jié)果不確定。

    (2)變量被修改一次同時(shí)發(fā)生非存儲(chǔ)性的讀取操作

    如表達(dá)式:

    x++*y+x/2

    表達(dá)式中變量x被修改了一次,同時(shí)變量x被讀取參與子表達(dá)式x/2的求值,因此是未定義行為。x++自增運(yùn)算符的副作用在何時(shí)發(fā)生,是不確定的,這種不確定影響子表達(dá)式x/2的求值不確定,導(dǎo)致表達(dá)式結(jié)果不確定。

    又如表達(dá)式:

    printf("%d %d",a++,a+5)

    在函數(shù)實(shí)參求值完成時(shí)是一個(gè)序列點(diǎn),但在此序列點(diǎn)前,實(shí)參的求值的順序是不確定的,第二個(gè)參數(shù)a++和第三個(gè)參數(shù)a+5求值順序不一樣,傳入的實(shí)參是不一樣的,顯示的結(jié)果不確定,表達(dá)式導(dǎo)致未定義行為。

    又如表達(dá)式:

    a[i]=i++

    變量i發(fā)生一次修改,同時(shí)i被讀取參與a[i]求值,因此是未定義行為。對(duì)于賦值運(yùn)算符兩端的操作數(shù),是先計(jì)算a[i]還是先計(jì)算i++,是不確定的,當(dāng)先計(jì)算i++時(shí),如果i++的副作用在計(jì)算a[i]之前生效,則變成給a[i+1]賦值。

    本質(zhì)上說(shuō),表達(dá)式導(dǎo)致未定義行為是由于副作用使得子表達(dá)式之間存在計(jì)算順序上的依賴關(guān)系,而副作用的發(fā)生順序和子表達(dá)式的計(jì)算順序是不確定的,導(dǎo)致表達(dá)式的結(jié)果也不確定。因此,對(duì)導(dǎo)致未定義行為的表達(dá)式,只需增加臨時(shí)變量和語(yǔ)句來(lái)破解這種計(jì)算順序上的依賴關(guān)系就行了。如:

    a[i]=i++;

    可以寫成兩條語(yǔ)句

    a[i]=i;i++;

    5 結(jié)語(yǔ)

    通過(guò)介紹C標(biāo)準(zhǔn)中的序列點(diǎn)和副作用兩個(gè)概念,以及兩個(gè)序列點(diǎn)之間子表達(dá)式求值順序和副作用發(fā)生順序的不確定性的規(guī)定后,學(xué)生就不會(huì)產(chǎn)生“表達(dá)式求值是按運(yùn)算符優(yōu)先級(jí)從左到右計(jì)算,同優(yōu)先級(jí)運(yùn)算符按結(jié)合性方向計(jì)算”的似是而非的認(rèn)識(shí),也很容易判斷出表達(dá)式是否會(huì)導(dǎo)致未定義行為,避免模仿別人寫出錯(cuò)誤的表達(dá)式。其實(shí),在C89標(biāo)準(zhǔn)中就有副作用和序列點(diǎn)的概念介紹,但國(guó)內(nèi)外教材基本在回避這兩個(gè)概念,國(guó)內(nèi)教材甚至以訛傳訛,把錯(cuò)誤的表達(dá)式當(dāng)正確的代碼分析講授。這說(shuō)明在C語(yǔ)言教學(xué)活動(dòng)中,教師應(yīng)該勤查權(quán)威的C標(biāo)準(zhǔn),深入理解C之精髓,提高甄別錯(cuò)誤、駕馭教材的能力,去蕪存菁,向?qū)W生傳授正確的知識(shí)。

    猜你喜歡
    運(yùn)算符逗號(hào)副作用
    逗號(hào)
    徐長(zhǎng)風(fēng):核苷酸類似物的副作用
    肝博士(2022年3期)2022-06-30 02:48:28
    我是逗號(hào)
    老祖?zhèn)魇诨具\(yùn)算符
    逗號(hào)
    當(dāng)心緊急避孕藥的副作用
    彼格梨
    氫化可的松嚴(yán)重副作用1例
    C++運(yùn)算符重載剖析
    表達(dá)式求值及符號(hào)推導(dǎo)
    在线观看免费午夜福利视频| 男女做爰动态图高潮gif福利片| 人人妻人人看人人澡| 欧美黄色淫秽网站| 两个人视频免费观看高清| 啦啦啦免费观看视频1| 精品国产亚洲在线| 成人国产综合亚洲| 窝窝影院91人妻| 久久久久国产一级毛片高清牌| 熟女人妻精品中文字幕| 国产淫片久久久久久久久 | 欧美不卡视频在线免费观看| 又大又爽又粗| 欧美性猛交╳xxx乱大交人| 久久99热这里只有精品18| 婷婷精品国产亚洲av在线| 中文亚洲av片在线观看爽| 中文字幕高清在线视频| 日韩欧美国产在线观看| 久久精品国产99精品国产亚洲性色| 午夜精品在线福利| 国产高清有码在线观看视频| 88av欧美| 亚洲国产看品久久| 国产三级中文精品| 在线观看免费视频日本深夜| 少妇熟女aⅴ在线视频| 啦啦啦韩国在线观看视频| 日本在线视频免费播放| 国产成人一区二区三区免费视频网站| 嫩草影院精品99| 亚洲av美国av| av国产免费在线观看| 国产野战对白在线观看| 亚洲 国产 在线| 欧美日韩国产亚洲二区| 国产成+人综合+亚洲专区| 成人18禁在线播放| bbb黄色大片| 精品日产1卡2卡| 欧美日韩福利视频一区二区| 一个人观看的视频www高清免费观看 | 少妇熟女aⅴ在线视频| 啦啦啦韩国在线观看视频| 中文字幕最新亚洲高清| 高清在线国产一区| 99热这里只有精品一区 | 亚洲人成网站高清观看| 亚洲avbb在线观看| 亚洲人与动物交配视频| 好男人在线观看高清免费视频| 啪啪无遮挡十八禁网站| 国产成年人精品一区二区| 国产三级在线视频| 午夜两性在线视频| 香蕉久久夜色| 成人一区二区视频在线观看| 91老司机精品| 精品久久蜜臀av无| 午夜激情欧美在线| 真人一进一出gif抽搐免费| 久久中文字幕一级| 亚洲无线在线观看| 色综合站精品国产| 亚洲激情在线av| 18禁黄网站禁片免费观看直播| 日韩欧美 国产精品| 欧美日韩综合久久久久久 | 久久久久性生活片| 桃色一区二区三区在线观看| 97超级碰碰碰精品色视频在线观看| 亚洲一区高清亚洲精品| 又爽又黄无遮挡网站| 麻豆av在线久日| 亚洲欧美一区二区三区黑人| 精品免费久久久久久久清纯| 亚洲熟妇中文字幕五十中出| 美女黄网站色视频| 午夜a级毛片| 久久精品国产亚洲av香蕉五月| 国产精品av视频在线免费观看| 男人舔女人下体高潮全视频| 久久亚洲精品不卡| 18禁黄网站禁片免费观看直播| 精华霜和精华液先用哪个| 亚洲乱码一区二区免费版| 18禁黄网站禁片免费观看直播| av天堂在线播放| 熟女电影av网| 日韩精品中文字幕看吧| 看黄色毛片网站| 免费观看精品视频网站| 成人18禁在线播放| 国产单亲对白刺激| 熟女人妻精品中文字幕| 国产亚洲欧美98| 99久久精品国产亚洲精品| 又大又爽又粗| 一边摸一边抽搐一进一小说| 精品一区二区三区视频在线 | 露出奶头的视频| 最近视频中文字幕2019在线8| 欧美日韩乱码在线| 一级作爱视频免费观看| 18禁黄网站禁片午夜丰满| 国产精品久久电影中文字幕| 91九色精品人成在线观看| 黑人巨大精品欧美一区二区mp4| 国产高潮美女av| 国产乱人视频| 久久亚洲精品不卡| 久久久久久大精品| 免费看美女性在线毛片视频| 亚洲人与动物交配视频| 特大巨黑吊av在线直播| 搡老熟女国产l中国老女人| 小说图片视频综合网站| 悠悠久久av| 热99在线观看视频| 嫩草影院精品99| 舔av片在线| 给我免费播放毛片高清在线观看| 中出人妻视频一区二区| 亚洲第一电影网av| 国产伦在线观看视频一区| 亚洲 国产 在线| 日韩精品青青久久久久久| 亚洲人成网站在线播放欧美日韩| 日日摸夜夜添夜夜添小说| 国产1区2区3区精品| 亚洲无线观看免费| 精品久久久久久久人妻蜜臀av| 脱女人内裤的视频| 免费看日本二区| 成人无遮挡网站| 我要搜黄色片| 午夜免费观看网址| 身体一侧抽搐| 啦啦啦韩国在线观看视频| 亚洲国产欧美一区二区综合| 巨乳人妻的诱惑在线观看| 久久精品人妻少妇| 亚洲 国产 在线| 亚洲乱码一区二区免费版| 97人妻精品一区二区三区麻豆| 人妻夜夜爽99麻豆av| 1000部很黄的大片| 成年女人看的毛片在线观看| 久久久久久久久中文| 又爽又黄无遮挡网站| 国产精品女同一区二区软件 | 国产探花在线观看一区二区| 国产av不卡久久| 国产免费男女视频| 高清在线国产一区| 男人的好看免费观看在线视频| 亚洲av电影在线进入| 亚洲国产欧洲综合997久久,| 美女午夜性视频免费| 成人高潮视频无遮挡免费网站| 国产成人啪精品午夜网站| 长腿黑丝高跟| 日本黄色视频三级网站网址| 男女那种视频在线观看| 俺也久久电影网| 国产成人福利小说| 久久人人精品亚洲av| 超碰成人久久| 午夜福利成人在线免费观看| 色综合欧美亚洲国产小说| e午夜精品久久久久久久| 亚洲色图 男人天堂 中文字幕| 国产精华一区二区三区| 亚洲七黄色美女视频| 热99在线观看视频| 午夜福利高清视频| 国产精品乱码一区二三区的特点| 高清在线国产一区| 老司机午夜十八禁免费视频| www.www免费av| 国产精品av久久久久免费| 久久久成人免费电影| 两个人的视频大全免费| 99精品在免费线老司机午夜| 久久人妻av系列| 一卡2卡三卡四卡精品乱码亚洲| 亚洲一区高清亚洲精品| 午夜激情福利司机影院| 香蕉国产在线看| 制服丝袜大香蕉在线| 日韩 欧美 亚洲 中文字幕| 国产又色又爽无遮挡免费看| 精品电影一区二区在线| 欧美日韩瑟瑟在线播放| 日日摸夜夜添夜夜添小说| 特大巨黑吊av在线直播| 真人一进一出gif抽搐免费| or卡值多少钱| 少妇裸体淫交视频免费看高清| 嫩草影院精品99| 亚洲av电影在线进入| 欧美日韩中文字幕国产精品一区二区三区| 亚洲精品色激情综合| 老汉色∧v一级毛片| 超碰成人久久| 国产av麻豆久久久久久久| 国产精品久久电影中文字幕| 久久午夜亚洲精品久久| 色播亚洲综合网| 欧美午夜高清在线| 亚洲自拍偷在线| 国产精品影院久久| 无遮挡黄片免费观看| 午夜免费成人在线视频| 少妇人妻一区二区三区视频| 国产不卡一卡二| 18禁国产床啪视频网站| 床上黄色一级片| 麻豆国产97在线/欧美| 欧美性猛交黑人性爽| 97超视频在线观看视频| 久久99热这里只有精品18| 久久亚洲精品不卡| 日本与韩国留学比较| 大型黄色视频在线免费观看| 岛国在线观看网站| 国产aⅴ精品一区二区三区波| 热99re8久久精品国产| 亚洲一区高清亚洲精品| 午夜福利成人在线免费观看| 久久久久精品国产欧美久久久| 黑人欧美特级aaaaaa片| 国产成人av激情在线播放| 亚洲在线观看片| 最新美女视频免费是黄的| 99久久成人亚洲精品观看| 国产69精品久久久久777片 | 啦啦啦观看免费观看视频高清| 国产激情久久老熟女| 无人区码免费观看不卡| 禁无遮挡网站| 亚洲国产欧美一区二区综合| 男插女下体视频免费在线播放| 热99re8久久精品国产| 又爽又黄无遮挡网站| 久久午夜综合久久蜜桃| 啦啦啦韩国在线观看视频| 国产午夜精品论理片| 窝窝影院91人妻| 九色国产91popny在线| 精品一区二区三区四区五区乱码| 久久久国产精品麻豆| 18禁国产床啪视频网站| 欧美午夜高清在线| 巨乳人妻的诱惑在线观看| 久久国产乱子伦精品免费另类| 欧美av亚洲av综合av国产av| 久久人人精品亚洲av| 丁香欧美五月| 国产伦精品一区二区三区视频9 | 国产精品一区二区免费欧美| 国内精品一区二区在线观看| 久久人人精品亚洲av| 香蕉丝袜av| 两性夫妻黄色片| 欧美xxxx黑人xx丫x性爽| 亚洲欧美一区二区三区黑人| 亚洲国产精品成人综合色| 免费看美女性在线毛片视频| 亚洲精品美女久久久久99蜜臀| 久久婷婷人人爽人人干人人爱| 午夜a级毛片| av国产免费在线观看| 亚洲成人中文字幕在线播放| 丁香欧美五月| 国产精品一区二区三区四区久久| 舔av片在线| 国产成人影院久久av| 女人被狂操c到高潮| 亚洲天堂国产精品一区在线| 国产人伦9x9x在线观看| 国内精品久久久久精免费| 真实男女啪啪啪动态图| 午夜成年电影在线免费观看| 国产激情久久老熟女| 欧洲精品卡2卡3卡4卡5卡区| 99精品久久久久人妻精品| 狠狠狠狠99中文字幕| 天天添夜夜摸| 欧美日韩乱码在线| 亚洲国产精品成人综合色| 国产亚洲精品久久久com| 国产麻豆成人av免费视频| 国产精品亚洲av一区麻豆| 久久久久国产一级毛片高清牌| 精品国产乱子伦一区二区三区| www.熟女人妻精品国产| 美女被艹到高潮喷水动态| 欧美绝顶高潮抽搐喷水| netflix在线观看网站| 天堂av国产一区二区熟女人妻| 人妻丰满熟妇av一区二区三区| 99精品在免费线老司机午夜| 成人18禁在线播放| 久久人妻av系列| 精品国产乱子伦一区二区三区| 人妻久久中文字幕网| 久久久久性生活片| 亚洲第一欧美日韩一区二区三区| 亚洲欧美日韩高清在线视频| 国产精品乱码一区二三区的特点| 99久久久亚洲精品蜜臀av| 国产伦精品一区二区三区视频9 | 国产伦精品一区二区三区四那| 一本综合久久免费| 日本黄色视频三级网站网址| 少妇人妻一区二区三区视频| 少妇丰满av| 香蕉av资源在线| 亚洲精品色激情综合| 亚洲熟妇中文字幕五十中出| 琪琪午夜伦伦电影理论片6080| 视频区欧美日本亚洲| 精品免费久久久久久久清纯| 高清毛片免费观看视频网站| 久久久国产成人免费| x7x7x7水蜜桃| 桃色一区二区三区在线观看| 日本一本二区三区精品| 欧美日韩瑟瑟在线播放| 一进一出抽搐gif免费好疼| 国产一区二区在线观看日韩 | 精品久久久久久久人妻蜜臀av| 亚洲av中文字字幕乱码综合| 亚洲国产日韩欧美精品在线观看 | 观看免费一级毛片| 天堂网av新在线| 精品国产乱子伦一区二区三区| 一区二区三区国产精品乱码| 国产午夜精品论理片| 在线a可以看的网站| 国产极品精品免费视频能看的| 一a级毛片在线观看| 视频区欧美日本亚洲| 色播亚洲综合网| 国产精品亚洲av一区麻豆| 天堂av国产一区二区熟女人妻| 欧美日韩瑟瑟在线播放| 欧美日韩综合久久久久久 | av女优亚洲男人天堂 | 久久精品亚洲精品国产色婷小说| 亚洲国产欧美网| 欧美日韩瑟瑟在线播放| 日本成人三级电影网站| 午夜福利在线观看免费完整高清在 | 这个男人来自地球电影免费观看| 欧美3d第一页| 好看av亚洲va欧美ⅴa在| 少妇人妻一区二区三区视频| 亚洲av第一区精品v没综合| 亚洲avbb在线观看| 亚洲成人免费电影在线观看| 五月玫瑰六月丁香| 国产美女午夜福利| 成年版毛片免费区| 日本精品一区二区三区蜜桃| 99精品久久久久人妻精品| 午夜亚洲福利在线播放| 91麻豆av在线| 色噜噜av男人的天堂激情| 国产av一区在线观看免费| 日本熟妇午夜| 视频区欧美日本亚洲| 亚洲av美国av| 亚洲无线在线观看| 亚洲av片天天在线观看| 午夜久久久久精精品| 免费在线观看成人毛片| 少妇的丰满在线观看| 成年免费大片在线观看| 黑人欧美特级aaaaaa片| 欧美日韩黄片免| 国产主播在线观看一区二区| 日韩国内少妇激情av| 国产99白浆流出| 日本a在线网址| 欧美乱色亚洲激情| 黄色视频,在线免费观看| 色综合婷婷激情| 色综合站精品国产| 午夜精品一区二区三区免费看| 91av网一区二区| 国产成人欧美在线观看| 日韩欧美国产一区二区入口| 精品一区二区三区四区五区乱码| 好男人电影高清在线观看| 在线观看日韩欧美| 成人国产一区最新在线观看| 国产美女午夜福利| 两个人的视频大全免费| 欧美日韩福利视频一区二区| 成人国产一区最新在线观看| 国产69精品久久久久777片 | 欧美xxxx黑人xx丫x性爽| 网址你懂的国产日韩在线| 亚洲欧美日韩卡通动漫| 亚洲午夜理论影院| 我要搜黄色片| 亚洲国产日韩欧美精品在线观看 | 很黄的视频免费| 麻豆久久精品国产亚洲av| 免费观看的影片在线观看| 两个人的视频大全免费| 亚洲人成伊人成综合网2020| 国产三级在线视频| 老司机午夜福利在线观看视频| 无遮挡黄片免费观看| 欧美中文日本在线观看视频| 国产不卡一卡二| 亚洲男人的天堂狠狠| 精品国产三级普通话版| 午夜久久久久精精品| 深夜精品福利| 丁香六月欧美| 久久久精品欧美日韩精品| 91在线观看av| 日本a在线网址| 日本免费a在线| 久久精品亚洲精品国产色婷小说| 18禁美女被吸乳视频| 欧美日韩瑟瑟在线播放| 最近最新免费中文字幕在线| 麻豆成人av在线观看| 国产成人影院久久av| 亚洲电影在线观看av| 午夜精品久久久久久毛片777| 久久久久久人人人人人| 亚洲成av人片免费观看| 欧美一区二区精品小视频在线| 亚洲成人久久爱视频| 老熟妇仑乱视频hdxx| 国产成人av教育| 国产av在哪里看| 性欧美人与动物交配| 啦啦啦免费观看视频1| 国内久久婷婷六月综合欲色啪| 亚洲激情在线av| 国产精品一区二区免费欧美| 久久香蕉国产精品| 国产午夜精品论理片| 69av精品久久久久久| 黄色日韩在线| 欧美乱妇无乱码| 老熟妇仑乱视频hdxx| 无人区码免费观看不卡| 五月伊人婷婷丁香| av黄色大香蕉| 亚洲av美国av| 国产1区2区3区精品| 国产91精品成人一区二区三区| 国产单亲对白刺激| 草草在线视频免费看| 成人三级做爰电影| 久久久国产欧美日韩av| 老司机午夜福利在线观看视频| cao死你这个sao货| 久久久久精品国产欧美久久久| 国产三级在线视频| 禁无遮挡网站| 午夜精品一区二区三区免费看| 91av网一区二区| 1024手机看黄色片| 成人一区二区视频在线观看| 精华霜和精华液先用哪个| 俺也久久电影网| 亚洲av片天天在线观看| 热99在线观看视频| bbb黄色大片| 免费无遮挡裸体视频| 淫秽高清视频在线观看| 校园春色视频在线观看| 亚洲精品在线美女| 一个人免费在线观看电影 | 国产精品影院久久| 免费搜索国产男女视频| 高潮久久久久久久久久久不卡| 国产成人系列免费观看| 一本一本综合久久| 丁香六月欧美| 一区福利在线观看| 一进一出抽搐动态| 欧美激情久久久久久爽电影| 国产精品一区二区三区四区久久| 成人亚洲精品av一区二区| 一区二区三区高清视频在线| 老鸭窝网址在线观看| 免费一级毛片在线播放高清视频| 国产又色又爽无遮挡免费看| 亚洲欧美一区二区三区黑人| 舔av片在线| 亚洲天堂国产精品一区在线| 欧美av亚洲av综合av国产av| 欧美激情在线99| 黄片大片在线免费观看| 欧美高清成人免费视频www| 久久中文看片网| 成熟少妇高潮喷水视频| 亚洲自拍偷在线| 午夜激情福利司机影院| 我的老师免费观看完整版| 又大又爽又粗| 白带黄色成豆腐渣| 制服丝袜大香蕉在线| 精品久久久久久久人妻蜜臀av| 亚洲成人精品中文字幕电影| 99久久精品热视频| 操出白浆在线播放| 亚洲人成网站在线播放欧美日韩| 俄罗斯特黄特色一大片| 午夜成年电影在线免费观看| 欧美日本亚洲视频在线播放| 一级作爱视频免费观看| 成年女人看的毛片在线观看| 亚洲五月天丁香| 久久久久国产精品人妻aⅴ院| 我要搜黄色片| 亚洲一区二区三区不卡视频| or卡值多少钱| 国产精品98久久久久久宅男小说| 黄色片一级片一级黄色片| 国产一区二区在线观看日韩 | 欧美中文日本在线观看视频| 99精品欧美一区二区三区四区| 精品一区二区三区av网在线观看| 丰满人妻一区二区三区视频av | 一个人看视频在线观看www免费 | av天堂在线播放| 日韩欧美国产一区二区入口| 国产成人影院久久av| 两性午夜刺激爽爽歪歪视频在线观看| 久久精品影院6| 99久久综合精品五月天人人| 亚洲av成人不卡在线观看播放网| 午夜精品久久久久久毛片777| 免费在线观看影片大全网站| 久9热在线精品视频| 国产精品亚洲一级av第二区| 嫩草影院入口| 国产精品98久久久久久宅男小说| 久久亚洲真实| 岛国在线观看网站| 一本一本综合久久| 国产又色又爽无遮挡免费看| 看片在线看免费视频| 免费人成视频x8x8入口观看| 欧美一区二区精品小视频在线| 国产激情久久老熟女| 亚洲精品粉嫩美女一区| 国产精品一区二区精品视频观看| 免费在线观看亚洲国产| 亚洲激情在线av| 国产伦一二天堂av在线观看| 好男人在线观看高清免费视频| 一进一出抽搐gif免费好疼| 首页视频小说图片口味搜索| 99热只有精品国产| 特级一级黄色大片| 久久久色成人| 国内揄拍国产精品人妻在线| 日韩欧美在线乱码| 久久性视频一级片| 91av网一区二区| 啦啦啦韩国在线观看视频| av视频在线观看入口| 两个人的视频大全免费| 人妻久久中文字幕网| 搡老岳熟女国产| 国产v大片淫在线免费观看| 亚洲乱码一区二区免费版| 欧美3d第一页| 亚洲精品在线观看二区| 精品熟女少妇八av免费久了| 悠悠久久av| 99在线视频只有这里精品首页| 动漫黄色视频在线观看| 国产精华一区二区三区| 亚洲av五月六月丁香网| 日日干狠狠操夜夜爽| 亚洲最大成人中文| 亚洲国产精品成人综合色| 亚洲色图av天堂| 俺也久久电影网| 国内少妇人妻偷人精品xxx网站 | 亚洲最大成人中文| 禁无遮挡网站| 男女下面进入的视频免费午夜| 国产伦精品一区二区三区四那| 亚洲黑人精品在线| 国内精品美女久久久久久| 蜜桃久久精品国产亚洲av| 午夜福利免费观看在线| 久久香蕉精品热| www国产在线视频色| 久久久水蜜桃国产精品网| 国语自产精品视频在线第100页| 午夜激情福利司机影院| 欧美黑人欧美精品刺激| 国产乱人伦免费视频| 国产日本99.免费观看| 岛国视频午夜一区免费看| 成年版毛片免费区| 老司机午夜十八禁免费视频| 久久久久久久久久黄片| 亚洲国产精品合色在线|