日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > C++ > 正文

深入理解C++中變量的存儲類別和屬性

2020-05-23 14:15:21
字體:
供稿:網(wǎng)友

這篇文章主要介紹了C++中變量的存儲類別和屬性,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下

C++變量的存儲類別(動態(tài)存儲、靜態(tài)存儲、自動變量、寄存器變量、外部變量)

動態(tài)存儲方式與靜態(tài)存儲方式

我們已經(jīng)了解了變量的作用域。作用域是從空間的角度來分析的,分為全局變量和局部變量。

變量還有另一種屬性——存儲期(storage duration,也稱生命期)。存儲期是指變量在內(nèi)存中的存在期間。這是從變量值存在的時間角度來分析的。存儲期可以分為靜態(tài)存儲期(static storage duration)和動態(tài)存儲期(dynamic storage duration)。這是由變量的靜態(tài)存儲方式和動態(tài)存儲方式?jīng)Q定的。

所謂靜態(tài)存儲方式是指在程序運行期間,系統(tǒng)對變量分配固定的存儲空間。而動態(tài)存儲方式則是在程序運行期間,系統(tǒng)對變量動態(tài)地分配存儲空間。

先看一下內(nèi)存中的供用戶使用的存儲空間的情況。這個存儲空間可以分為三部分,即:

程序區(qū)

靜態(tài)存儲區(qū)

動態(tài)存儲區(qū)

深入理解C++中變量的存儲類別和屬性

數(shù)據(jù)分別存放在靜態(tài)存儲區(qū)和動態(tài)存儲區(qū)中。全局變量全部存放在靜態(tài)存儲區(qū)中,在程序開始執(zhí)行時給全局變量分配存儲單元,程序執(zhí)行完畢就釋放這些空間。在程序執(zhí)行過程中它們占據(jù)固定的存儲單元,而不是動態(tài)地進(jìn)行分配和釋放。

在動態(tài)存儲區(qū)中存放以下數(shù)據(jù):

函數(shù)形式參數(shù)。在調(diào)用函數(shù)時給形參分配存儲空間。

函數(shù)中的自動變量(未加static聲明的局部變量,詳見后面的介紹)。

函數(shù)調(diào)用時的現(xiàn)場保護(hù)和返回地址等。

對以上這些數(shù)據(jù),在函數(shù)調(diào)用開始時分配動態(tài)存儲空間,函數(shù)結(jié)束時釋放這些空間。在程序執(zhí)行過程中,這種分配和釋放是動態(tài)的,如果在一個程序中兩次調(diào)用同一函數(shù),則要進(jìn)行兩次分配和釋放,而兩次分配給此函數(shù)中局部變量的存儲空間地址可能是不相同的。

如果在一個程序中包含若干個函數(shù),每個函數(shù)中的局部變量的存儲期并不等于整個程序的執(zhí)行周期,它只是整個程序執(zhí)行周期的一部分。根據(jù)函數(shù)調(diào)用的情況,系統(tǒng)對局部變量動態(tài)地分配和釋放存儲空間。

在C++中變量除了有數(shù)據(jù)類型的屬性之外,還有存儲類別(storage class) 的屬性。存儲類別指的是數(shù)據(jù)在內(nèi)存中存儲的方法。存儲方法分為靜態(tài)存儲和動態(tài)存儲兩大類。具體包含4種:自動的(auto)、靜態(tài)的(static)、寄存器的(register)和外部的(extern)。根據(jù)變量的存儲類別,可以知道變量的作用域和存儲期。

自動變量

函數(shù)中的局部變量,如果不用關(guān)鍵字static加以聲明,編譯系統(tǒng)對它們是動態(tài)地分配存儲空間的。函數(shù)的形參和在函數(shù)中定義的變量(包括在復(fù)合語句中定義的變量)都屬此類。在調(diào)用該函數(shù)時,系統(tǒng)給形參和函數(shù)中定義的變量分配存儲空間,數(shù)據(jù)存儲在動態(tài)存儲區(qū)中。在函數(shù)調(diào)用結(jié)束時就自動釋放這些空間。如果是在復(fù)合語句中定義的變量,則在變量定義時分配存儲空間,在復(fù)合語句結(jié)束時自動釋放空間。因此這類局部變量稱為自動變量(auto variable)。自動變量用關(guān)鍵字auto作存儲類別的聲明。例如:

 

 
  1. int f(int a) //定義f函數(shù),a為形參 
  2. auto int b, c=3; //定義b和c為整型的自動變量 

存儲類別auto和數(shù)據(jù)類型int的順序任意。關(guān)鍵字auto可以省略,如果不寫auto,則系統(tǒng)把它默認(rèn)為自動存儲類別,它屬于動態(tài)存儲方式。程序中大多數(shù)變量屬于自動變量。本教程前面各章所介紹的例子中,在函數(shù)中定義的變量都沒有聲明為auto,其實都默認(rèn)指定為自動變量。在函數(shù)體中以下兩種寫法作用相同:

 

 
  1. auto int b, c=3; 
  2. int b, c=3; 

用static聲明靜態(tài)局部變量

有時希望函數(shù)中的局部變量的值在函數(shù)調(diào)用結(jié)束后不消失而保留原值,即其占用的存儲單元不釋放,在下一次該函數(shù)調(diào)用時,該變量保留上一次函數(shù)調(diào)用結(jié)束時的值。這時就應(yīng)該指定該局部變量為靜態(tài)局部變量(static local variable)。

【例】靜態(tài)局部變量的值。

 

 
  1. #include <iostream> 
  2. using namespace std; 
  3. int f(int a) //定義f函數(shù),a為形參 
  4. auto int b=0; //定義b為自動變量 
  5. static int c=3; //定義c為靜態(tài)局部變量 
  6. b=b+1; 
  7. c=c+1; 
  8. return a+b+c; 
  9. int main( ) 
  10. int a=2,i; 
  11. for(i=0;i<3;i++) 
  12. cout<<f(a)<<" "
  13. cout<<endl; 
  14. return 0; 

運行結(jié)果為:

 

 
  1. 7 8 9 

先后3次調(diào)用f函數(shù)時,b和c的值如表所示。

深入理解C++中變量的存儲類別和屬性

對靜態(tài)局部變量的說明:

靜態(tài)局部變量在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。而自動變量(即動態(tài)局部變量)屬于動態(tài)存儲類別,存儲在動態(tài)存儲區(qū)空間(而不是靜態(tài)存儲區(qū)空間),函數(shù)調(diào)用結(jié)束后即釋放。

為靜態(tài)局部變量賦初值是在編譯時進(jìn)行值的,即只賦初值一次,在程序運行時它已有初值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。而為自動變量賦初值,不是在編譯時進(jìn)行的,而是在函數(shù)調(diào)用時進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。

如果在定義局部變量時不賦初值的話,對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符型變量)。而對自動變量來說,如果不賦初值,則它的值是一個不確定的值。這是由于每次函數(shù)調(diào)用結(jié)束后存儲單元已釋放,下次調(diào)用時又重新另分配存儲單元,而所分配的單元中的值是不確定的。

雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的,也就是說,在其他函數(shù)中它是“不可見”的。

在什么情況下需要用局部靜態(tài)變量呢?

1) 需要保留函數(shù)上一次調(diào)用結(jié)束時的值。例如可以用下例中的方法求n!。

【例】輸出1~5的階乘值(即1!,2!,3!,4!,5!)。

 

 
  1. #include <iostream> 
  2. using namespace std; 
  3. int fac(int); //函數(shù)聲明 
  4. int main( ) 
  5. int i; 
  6. for(i=1;i<=5;i++) 
  7. cout<<i<<"!="<<fac(i)<<endl; 
  8. return 0; 
  9. int fac(int n) 
  10. static int f=1; //f為靜態(tài)局部變量,函數(shù)結(jié)束時f的值不釋放 
  11. f=f*n; //在f原值基礎(chǔ)上乘以n 
  12. return f; 

運行結(jié)果為

 

 
  1. 1!=1 
  2. 2!=2 
  3. 3!=6 
  4. 4!=24 
  5. 5!=120 

每次調(diào)用fac(i),就輸出一個i,同時保留這個i!的值,以便下次再乘(i+1)。

2) 如果初始化后,變量只被引用而不改變其值,則這時用靜態(tài)局部變量比較方便,以免每次調(diào)用時重新賦值。 但是應(yīng)該看到,用靜態(tài)存儲要多占內(nèi)存,而且降低了程序的可讀性,當(dāng)調(diào)用次數(shù)多時往往弄不清靜態(tài)局部變量的當(dāng)前值是什么。因此,如不必要,不要多用靜態(tài)局部變量。

用register聲明寄存器變量

一般情況下,變量的值是存放在內(nèi)存中的。當(dāng)程序中用到哪一個變量的值時,由控制器發(fā)出指令將內(nèi)存中該變量的值送到CPU中的運算器。經(jīng)過運算器進(jìn)行運算,如果需要存數(shù),再從運算器將數(shù)據(jù)送到內(nèi)存存放。如圖所示。

深入理解C++中變量的存儲類別和屬性

為提高執(zhí)行效率,C++允許將局部變量的值放在CPU中的寄存器中,需要用時直接從寄存器取出參加運算,不必再到內(nèi)存中去存取。這種變量叫做寄存器變量,用關(guān)鍵字register作聲明。例如,可以將例4.14中的fac函數(shù)改寫如下:

 

 
  1. int fac(int n) 
  2. register int i,f=1; //定義i和f是寄存器變量 
  3. for(i=1;i<=n;i++) f=f*i; 
  4. return f; 

定義f和i是存放在寄存器的局部變量,如果n的值大,則能節(jié)約許多執(zhí)行時間。

在程序中定義寄存器變量對編譯系統(tǒng)只是建議性(而不是強制性)的。當(dāng)今的優(yōu)化編譯系統(tǒng)能夠識別使用頻繁的變量,自動地將這些變量放在寄存器中。

用extern聲明外部變量

全局變量(外部變量)是在函數(shù)的外部定義的,它的作用域為從變量的定義處開始,到本程序文件的末尾。在此作用域內(nèi),全局變量可以為本文件中各個函數(shù)所引用。編譯時將全局變量分配在靜態(tài)存儲區(qū)。

有時需要用extern來聲明全局變量,以擴展全局變量的作用域。

1) 在一個文件內(nèi)聲明全局變量

如果外部變量不在文件的開頭定義,其有效的作用范圍只限于定義處到文件終了。如果在定義點之前的函數(shù)想引用該全局變量,則應(yīng)該在引用之前用關(guān)鍵字extern對該變量作外部變量聲明,表示該變量是一個將在下面定義的全局變量。有了此聲明,就可以從聲明處起,合法地引用該全局變量,這種聲明稱為提前引用聲明。

【例】用extern對外部變量作提前引用聲明,以擴展程序文件中的作用域。

 

 
  1. #include <iostream> 
  2. using namespace std; 
  3. int max(int,int); //函數(shù)聲明 
  4. void main( ) 
  5. extern int a,b;//對全局變量a,b作提前引用聲明 
  6. cout<<max(a,b)<<endl; 
  7. int a=15,b=-7;//定義全局變量a,b 
  8. int max(int x,int y) 
  9. int z; 
  10. z=x>y?x:y; 
  11. return z; 

運行結(jié)果如下:

 

 

在main后面定義了全局變量a,b,但由于全局變量定義的位置在函數(shù)main之后,因此如果沒有程序的第5行,在main函數(shù)中是不能引用全局變量a和b的。現(xiàn)在我們在main函數(shù)第2行用extern對a和b作了提前引用聲明,表示a和b是將在后面定義的變量。這樣在main函數(shù)中就可以合法地使用全局變量a和b了。如果不作extern聲明,編譯時會出錯,系統(tǒng)認(rèn)為a和b未經(jīng)定義。一般都把全局變量的定義放在引用它的所有函數(shù)之前,這樣可以避免在函數(shù)中多加一個extern聲明。

2) 在多文件的程序中聲明外部變量

如果一個程序包含兩個文件,在兩個文件中都要用到同一個外部變量num,不能分別在兩個文件中各自定義一個外部變量num。正確的做法是:在任一個文件中定義外部變量num,而在另一文件中用extern對num作外部變量聲明。即

 

 
  1. extern int num; 

編譯系統(tǒng)由此知道num是一個已在別處定義的外部變量,它先在本文件中找有無外部變量num,如果有,則將其作用域擴展到本行開始(如上節(jié)所述),如果本文件中無此外部變量,則在程序連接時從其他文件中找有無外部變量num,如果有,則把在另一文件中定義的外部變量num的作用域擴展到本文件,在本文件中可以合法地引用該外部變量num。

分析下例:

filel.cpp

 

  1. extern int a,b; 
  2. int main() 
  3. cout<<a<<","<<b<<end!; 
  4. return 0; 
  5.  
  6. file2.cpp 
  7. int as3,b=4; 

在源程序文件ffle2.cpp中定義了整型變量a和b,并賦了初值。在filel.cpp中用extern聲明外部變量a和b,未賦值。在編譯連接成一個程序后,file2.cpp中的a和b的作用域擴展到file2.cpp文件中,因此main函數(shù)中的cout語句輸出a和b的值為3和4。

用extern擴展全局變量的作用域,雖然能為程序設(shè)計帶來方便,但應(yīng)十分慎重,因為在執(zhí)行一個文件中的函數(shù)時,可能會改變了該全局變量的值,從而會影響到另一文件中的函數(shù)執(zhí)行結(jié)果。

用static聲明靜態(tài)外部變量

有時在程序設(shè)計中希望某些外部變量只限于被本文件引用,而不能被其他文件引用。這時可以在定義外部變量時加一個static聲明。例如:

file1.cpp

 

 
  1. static int a=3; 
  2. int main ( ) 
  3. ┆ 

file2.cpp

 

 
  1. extern int a; 
  2. int fun (int n) 
  3. ┆ 
  4. a=a*n; 
  5. ┆ 

在filel.cpp中定義了一個全局變量a,但它用static聲明,因此只能用于本文件,雖然 在cpp文件中用了“extern int a;”,但file2.cpp文件中仍然無法使用filel.cpp中的全局變量a。

這種加上static聲明、只能用于本文件的外部變量(全局變量)稱為靜態(tài)外部變量。這就為程序的模塊化、通用性提供了方便。如果已知道其他文件不需要引用本文件的全局變量,可以對本文件中的全局變量都加上static,成為靜態(tài)外部變量,以免被其他文件誤用。

需要指出,不要誤認(rèn)為用static聲明的外部變量才采用靜態(tài)存儲方式(存放在靜態(tài)存儲區(qū)中),而不加static的是動態(tài)存儲(存放在動態(tài)存儲區(qū))。實際上,兩種形式的外部變量都用靜態(tài)存儲方式,只是作用范圍不同而已,都是在編譯時分配內(nèi)存的。

C++變量屬性小結(jié)

一個變量除了數(shù)據(jù)類型以外,還有3種屬性:

存儲類別 C++允許使用auto,static,register和extern 4種存儲類別。

作用域 指程序中可以引用該變量的區(qū)域。

存儲期 指變量在內(nèi)存的存儲期限。

以上3種屬性是有聯(lián)系的,程序設(shè)計者只能聲明變量的存儲類別,通過存儲類別可以確定變量的作用域和存儲期。

要注意存儲類別的用法。auto, static和register 3種存儲類別只能用于變量的定義語句中,如:

 

 
  1. auto char c; //字符型自動變量,在函數(shù)內(nèi)定義 
  2. static int a; //靜態(tài)局部整型變量或靜態(tài)外部整型變量 
  3. register int d; //整型寄存器變量,在函數(shù)內(nèi)定義 
  4. extern int b; //聲明一個已定義的外部整型變量 

說明: extern只能用來聲明已定義的外部變量,而不能用于變量的定義。只要看到extern,就可以判定這是變量聲明,而不是定義變量的語句。

下面從不同角度分析它們之間的聯(lián)系。

1) 從作用域角度分,有局部變量和全局變量。它們采用的存儲類別如下:

局部變量

自動變量,即動態(tài)局部變量(離開函數(shù),值就消失)

靜態(tài)局部變量(離開函數(shù),值仍保留)

寄存器變量(離開函數(shù),值就消失)

形式參數(shù)(可以定義為自動變量或寄存器變量)

全局變量

靜態(tài)外部變量(只限本文件引用)

外部變量(即非靜態(tài)的外部變量,允許其他文件引用)

2) 從變量存儲期(存在的時間)來區(qū)分,有動態(tài)存儲和靜態(tài)存儲兩種類型。靜態(tài)存儲是程序整個運行時間都存在,而動態(tài)存儲則是在調(diào)用函數(shù)時臨時分配單元。

動態(tài)存儲

自動變量(本函數(shù)內(nèi)有效)

寄存器變量(本函數(shù)內(nèi)有效)

形式參數(shù)

靜態(tài)存儲

靜態(tài)局部變量(函數(shù)內(nèi)有效)

靜態(tài)外部變量(本文件內(nèi)有效)

外部變量(其他文件可引用)

3) 從變量值存放的位置。可分為:

內(nèi)存中靜態(tài)存儲區(qū)

靜態(tài)局部變量

靜態(tài)外部變量(函數(shù)外部靜態(tài)變量)

外部變量(可為其他文件引用)

內(nèi)存中動態(tài)存儲區(qū): 自動變量和形式參數(shù)

CPU 中的寄存器: 寄存器變量

4) 關(guān)于作用域和存儲期的概念。

從前面敘述可以知道,對一個變量的性質(zhì)可以從兩個方面分析,一是從變量的作用域,一是從變量值存在時間的長短,即存儲期。前者是從空間的角度,后者是從時間的角度。二者有聯(lián)系但不是同一回事。下圖是作用域的示意圖,下圖是存儲期的示意圖。

深入理解C++中變量的存儲類別和屬性

深入理解C++中變量的存儲類別和屬性

如果一個變量在某個文件或函數(shù)范圍內(nèi)是有效的,則稱該文件或函數(shù)為該變量的作用域,在此作用域內(nèi)可以引用該變量,所以又稱變量在此作用域內(nèi)“可見”,這種性質(zhì)又稱為變量的可見性,例如圖中變量a?b在函數(shù)f1中可見。

如果一個變量值在某一時刻是存在的,則認(rèn)為這一時刻屬于該變量的存儲期,或稱該變量在此時刻“存在”。下表表示各種類型變量的作用域和存在性的情況。

深入理解C++中變量的存儲類別和屬性

其中“√”表示是,“X”表示否。可以看到自動變量和寄存器變量在函數(shù)內(nèi)的可見性和存在性是一致的。在函數(shù)外的可見性和存在性也是一致的。靜態(tài)局部變量在函數(shù)外的可見性和存在性不一致。靜態(tài)外部變量和外部變量的可見性和存在性是一致的。

如果一個變量在某個文件或函數(shù)范圍內(nèi)是有效的,則稱該文件或函數(shù)為該變量的作用域,在此作用域內(nèi)可以引用該變量,所以又稱變量在此作用域內(nèi)“可見”,這種性質(zhì)又稱為變量的可見性,例如圖中變量a?b在函數(shù)f1中可見。

如果一個變量值在某一時刻是存在的,則認(rèn)為這一時刻屬于該變量的存儲期,或稱該變量在此時刻“存在”。書中表表示各種類型變量的作用域和存在性的情況。

可以看到自動變量和寄存器變量在函數(shù)內(nèi)的可見性和存在性是一致的。在函數(shù)外的可見性和存在性也是一致的。靜態(tài)局部變量在函數(shù)外的可見性和存在性不一致。靜態(tài)外部變量和外部變量的可見性和存在性是一致的。

5) static聲明使變量采用靜態(tài)存儲方式,但它對局部變量和全局變量所起的作用不同。

對局部變量來說,static使變量由動態(tài)存儲方式改變?yōu)殪o態(tài)存儲方式。而對全局變量來說,它使變量局部化(局部于本文件),但仍為靜態(tài)存儲方式。從作用域角度看,凡有static聲明的,其作用域都是局限的,或者局限于本函數(shù)內(nèi)(靜態(tài)局部變量),或者局限于本文件內(nèi)(靜態(tài)外部變量)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
97国产视频| 99亚洲视频| 日韩手机在线观看视频| 91精品久久久久久久91蜜桃| 国产一级免费看| 亚洲女同中文字幕| 日韩精品在线免费观看| 91精品国产综合久久香蕉的特点| 亚洲精品中文字幕乱码三区| 中文字幕日韩亚洲| 亚洲一区精品电影| 狠狠色噜噜狠狠狠狠97| 日韩欧美一卡二卡| 日韩三级精品电影久久久| 中文字幕亚洲免费| 日本免费看黄| 欧美日韩精品在线视频| 不卡视频一区二区三区| 顶级网黄在线播放| 刘玥91精选国产在线观看| 91蜜桃在线视频| 99热最新网址| 久久精品99国产国产精| 欧美日韩精品中文字幕| 精品午夜av| 久久视频一区| 亚洲最大黄色| av一区在线| 欧美亚洲综合视频| 欧美日韩中文字幕在线| 国内不卡的二区三区中文字幕| 欧美.日韩.国产.一区.二区| 欧美不卡123| 亚洲黄在线观看| 国产区高清在线| 欧美高清视频一区二区三区| 成人禁用看黄a在线| 亚洲国内精品视频| 欧美日韩一二三| 欧美日韩综合高清一区二区 | 在线亚洲免费| 日韩欧美在线网站| 中文字幕 欧美日韩| 欧美片网站免费| 国产99对白在线播放| 国产欧美亚洲一区| 欧美日韩国产影片| 红桃视频国产一区| 一级日韩一级欧美| 国产久卡久卡久卡久卡视频精品| 精品国产91| 欧美亚洲国产日韩| 国产精品福利视频一区二区三区| 国产三级第一页| 欧美日韩精品久久久| 日韩精品视频免费| 天天综合天天| 欧美三级免费观看| 欧美日韩亚洲国内综合网俺| 欧美日韩激情一区二区三区| 1区2区在线| 黄色在线资源| 日韩精品在线中文字幕| 亚洲综合在线小说| 国产视频2区| 国产小视频在线| 国产欧美久久久| av不卡免费看| 日韩欧美一二三| 亚洲高清视频一区| 国产日韩精品在线观看| 91精品久久久久久久久久入口| 欧美日韩三级在线观看| a视频免费在线观看| 日韩三级高清在线| 又黄又www的网站| 日韩中文字幕二区| 亚洲欧洲日韩在线| 一区二区三区在线播| 日韩欧美在线1卡| www日韩在线观看| 日韩视频第二页| 欧美国产一级| 在线观看区一区二| 精品在线观看一区| 午夜影院在线观看欧美| 日韩视频精品在线观看| 国产福利第一页| 一本一道综合狠狠老| 阿v免费在线观看| 日韩av一区二区在线| 一区二区三区中文字幕在线观看| 国产日韩三级| 日韩欧美国产亚洲| 亚洲一区中文| 国产一级一片免费播放| 在线视频不卡国产V| 欧美日韩一二三| 中文在线一区| 黄色在线播放网站| 欧美激情视频一区二区三区在线播放| 欧美不卡视频一区| 在线一区免费| 日韩在线视频网| 欧美日韩三级一区| 91精品免费看| 在线中文字幕网站| 日韩精品在线网站| 日本不卡视频一区| 国产一二三区精品视频| 国产区日韩欧美| 樱花草www在线| 亚洲黄在线观看| 欧美一级免费看| 日韩视频国产视频| 久久99精品久久久久婷婷| 日韩精品免费视频一区二区三区| 深夜福利亚洲| 欧美日韩亚洲第一| 国产福利一区二区在线精品| 欧美日韩在线不卡| 国产天堂素人系列在线视频| www..com日韩| 亚洲中午字幕| 91蜜桃在线视频| 精品福利二区三区| 亚洲女人天堂色在线7777| 日韩精品大片| 国产不卡一区| 日韩精品在线第一页| 日韩在线视频网| 日韩黄色在线播放| 国产一级久久久| 国产色在线 com| 日韩精品第一区| 伊人精品视频| 国产区高清在线| 国产久卡久卡久卡久卡视频精品| 先锋男人资源站| 日韩欧美中文| 久久99精品久久久久久青青日本| 久久精品www| 亚洲黄页一区| 国产综合精品在线| 国产福利第一页| 中文字幕亚洲一区二区av在线| 国产亚洲福利| wwwww亚洲| 国产不卡一区| 欧美日韩国产综合视频在线观看 | 不卡在线一区二区| 精品日本视频| 亚洲综合视频一区| 91精品国产综合久久久久久漫画| 亚洲日本精品视频| 日韩精品视频网站| 国产激情在线观看| 午夜亚洲一区| 色一区在线观看| 亚洲最大黄色| 狠狠色综合色区| 亚洲素人一区二区| 日韩精品不卡一区二区| 在线中文字幕网站| 欧美日韩亚洲天堂| 色国产在线视频| 国产丝袜一区二区| 91精选在线| 日韩欧美亚洲视频| 国产欧美综合在线观看第十页| 日韩国产在线不卡视频| www 日韩| 国产高清在线视频| 99精品电影| 久久综合九色欧美综合狠狠| 欧美日韩视频在线| 欧美亚洲专区| 欧美久久在线| 久久99久久99精品中文字幕| 一本久久a久久精品亚洲| 日韩精品―中文字幕| 日韩中文字幕91| 国产欧美中文在线| 婷婷综合福利| 一区二区三区精品在线| 日韩三级一区二区| 中文字幕第一页在线播放| 91精品免费在线观看| 精品一性一色一乱农村| 欧洲精品久久久| 亚洲欧美999| 久久99久久久久| 欧美日韩中文字幕一区| 国产日韩av一区| 亚洲久草视频| 精品视频在线视频| 在线一区二区三区精品| 丰满少妇一区| 高清一区二区| 亚洲图片小说综合| 一区二区三区视频网站| 色www精品视频在线观看| 欧美日韩中文国产| 日韩欧美中文免费| 久久精品国产成人一区二区三区| 免费一级欧美在线观看视频| 国产一二三精品| 国产激情在线观看| 一级免费a一片| 久久精品久久精品国产大片| 精品国产不卡一区二区| 精品国产免费视频| 日韩色在线观看| 一级片在线免费看| 日韩久久99| 一区在线播放视频| 日本熟女一区二区| 国产丝袜一区二区| 国产 欧美在线| 国产v日产∨综合v精品视频| 精品对白一区国产伦| 日韩av一区二区在线| 国产欧美日韩中文字幕| 亚洲狠狠婷婷综合久久久久图片| av免费在线不卡| 国产高清精品在线| 国产 日韩 欧美 综合| 欧美日韩激情在线一区二区三区| 中文字幕在线视频久| 亚洲国产无线乱码在线观看| 亚洲综合视频一区| 亚洲羞羞网站| 男人的天堂网av| 一区在线免费| 久久中文精品| 国产视频aaa| 中文字幕精品国产| 久久视频一区| 午夜国产欧美理论在线播放| 国产成人精品网址| 欧美一级欧美三级在线观看| 欧美三级在线看| 91精品国产综合久久久久久| 在线视频一区二区三区在线播放| 日本a口亚洲| 久草中文在线观看| 亚洲伊人婷婷| 在线一区二区不卡| 91精品视频国产| 一级网站免费观看| 在线视频观看日韩| 在线欧美一级视频| 欧美日韩国产第一页| 亚洲成人7777| 第一页在线观看| 国产三级视频在线播放线观看| 亚洲乱码中文字幕综合| 狠狠色噜噜狠狠狠狠97| 欧美日韩国产一中文字不卡| 日韩欧美字幕| wwwav在线播放| 久久人人88| 国产成人中文字幕| 日韩a一区二区| 精品全国在线一区二区| 国产亚洲二区| 在线视频一区二区三区在线播放| 免费高清特黄a大片| 搞黄在线观看| 日韩欧美国产一二三区| 国产福利第一页| 亚洲一级二级| 久久精品最新免费国产成人| 一区二区三区四区五区视频在线观看| 91精品免费在线观看| 国产 日韩 欧美 综合 一区| 欧美日韩99| 日韩精品一级| 精品人妻一区二区三区视频| 欧美日韩综合高清一区二区| 黄色国产在线| 最新中文在线视频| 国产区高清在线| 日韩欧美资源站| 视频一区二区精品的福利| 欧美日韩综合色| 精品999视频| 国产性一级片| 欧美三级免费观看| 中文字幕在线视频网| 午夜少妇久久久久久久久| 欧美日韩久久不卡| 欧美日韩国产大片| 日韩欧美三级在线| 国产绿帽一区二区三区| 精品成人久久av| 中文字幕在线视频久| 国产激情在线视频| 国产免费一级| 午夜私人影院在线观看| 国产欧美综合视频| 精品中文字幕在线播放| 精品国产91乱高清在线观看| 欧美wwww| 亚洲欧美韩国综合色| 不卡在线视频| 亚洲欧美久久234| 国产婷婷在线观看| 中文字幕在线看精品乱码| 亚洲一区中文字幕在线| 亚洲高清在线免费| 色综合影院在线| 日韩欧美在线网址| www日韩在线观看| 欧美日韩精品国产| 99久久婷婷| 欧美亚洲国产日韩| 九七久久人人| 欧美日韩高清在线播放| 国产成人精品av久久| 欧美日韩亚洲综合在线| 91蜜桃婷婷狠狠久久综合9色| 人人做人人澡人人爽欧美| 欧洲精品在线一区| 欧美日韩国产123区| 一区二区三区视频网站| 亚洲大片免费看| 91精品久久久久| 久久99精品久久久久子伦| 91精品婷婷国产综合久久竹菊| 欧美99久久| 久久久久久欧美| 国产三级在线观看视频| 视频一区二区国产| 亚洲黄色一区二区| 欧美成人精品在线| 91精品国产99| 色综合影院在线| 国产中文在线观看| 免费看日韩精品| 亚洲 欧美 中文字幕| 日韩不卡一区二区| 久久精品久久久久| 国产福利三区| 在线亚洲免费| 天天综合天天| 中文字幕第一页在线播放| 日韩精品欧美在线| 亚洲高清精品视频| 日韩国产欧美亚洲| 91精品国产综合久久久久久| 欧美日韩综合色| 国产午夜精品全部视频播放| aaa免费看大片| 国产视频不卡| 在线观看91精品国产入口| 国产v日产∨综合v精品视频| 精品国产1区2区3区| 久久婷婷中文字幕| 免费国产h视频在线观看86| 中文字幕精品在线视频| 日韩高清不卡一区| 日韩视频在线一区| 国产高清在线视频| 极品久久久久久| 久久久精品免费免费| 日韩色在线观看| 欧美亚洲视频在线看网址| 最近中文av字幕在线中文| 国产欧美日韩高清| 日韩国产成人| 一区二区三区久久| 国产成人精品三级| 日韩欧美中文字幕在线观看| 中文字幕 日韩 欧美| 中文字幕在线观看播放| 99精品一级欧美片免费播放| 91精品国产综合久久久蜜臀粉嫩| 欧美日韩高清| 天天综合日日夜夜精品| 欧美日韩午夜精品| 国产三级精品网站| 久久久水蜜桃| 国产欧美久久久久久久久| 亚洲第一视频| 日韩在线不卡一区| 中文字幕在线播出| 亚洲人线精品午夜| 精品播放一区二区| 亚洲福利在线视频| 偷窥国产亚洲免费视频| 在线一区av| 在线视频一区二区三区在线播放 | 国产丝袜在线播放| 国产欧美日韩高清| 久久久精品免费免费| 欧美日韩中文另类| 国产拍揄自揄精品视频麻豆| 国产美女主播视频一区| 中文在线а√在线8|