亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C語言基礎教程(二)數據類型、變量和運算符

2019-11-17 05:19:26
字體:
來源:轉載
供稿:網友
    說明:
    1. 象其它一些語言一樣, Turbo C的變量在使用之前必須先定義其數據類型,
未經定義的變量不能使用。定義變量類型應在可執行語句前面, 如上例main()函
數中的第一條語句就是變量定義語句, 它必須放在第一各執行語句clrscr()前面。
    2. 在Turbo C中, 大、小寫字母是有區別的, 相同字母的大、小寫代表不同
的變量。
    3. Turbo C程序的書寫格式非常靈活, 沒有嚴格限制。
    例1的主函數可寫成:
    main(){char c; clrscr(); gotoxy(12,3);
           puts("Welcome to use Turbo C2.0!"); gotoxy(15,13);
               這樣寫語法上沒有錯誤, 但閱讀起來不方便, 同時也使得程序層次不明確。
作者建議用Turbo C編程時, 一行一條語句, 碰到嵌套語句向后縮進,  必要時對
程序加上注釋行。這樣可以便程序結構清楚、易于閱讀、維護和修改。
    通過以上介紹, 可以得出Turbo C源程序的一般形式為:
          包含文件
          子函數類型說明
          全程變量定義
          main()
          {
            局部變量定義
            <程序體>
          }
          sub1()
          {
            局部變量定義
            <程序體>
          }
          sub2()
          {
            局部變量定義
            <程序體>
          }
               .
               .
               .
          subN()
          {
            局部變量定義
            <程序體>
          }
    其中sub1(), ..., subN()代表用戶定義的子函數, 程序體指Turbo C 2.0
提供的任何庫函數調用語句、控制流程語句或其它用子函數調用語句等。

    說明:
    1. 象其它一些語言一樣, Turbo C的變量在使用之前必須先定義其數據類型,
未經定義的變量不能使用。定義變量類型應在可執行語句前面, 如上例main()函
數中的第一條語句就是變量定義語句, 它必須放在第一各執行語句clrscr()前面。
    2. 在Turbo C中, 大、小寫字母是有區別的, 相同字母的大、小寫代表不同
的變量。
    3. Turbo C程序的書寫格式非常靈活, 沒有嚴格限制。
    例1的主函數可寫成:
    main(){char c; clrscr(); gotoxy(12,3);
           puts("Welcome to use Turbo C2.0!"); gotoxy(15,13);
           printf("<CR>--Continue"); gotoxy(15,15);...}
    這樣寫語法上沒有錯誤, 但閱讀起來不方便, 同時也使得程序層次不明確。
作者建議用Turbo C編程時, 一行一條語句, 碰到嵌套語句向后縮進,  必要時對
程序加上注釋行。這樣可以便程序結構清楚、易于閱讀、維護和修改。
    通過以上介紹, 可以得出Turbo C源程序的一般形式為:
          包含文件
          子函數類型說明
          全程變量定義
          main()
          {
            局部變量定義
            <程序體>
          }
          sub1()
          {
            局部變量定義
            <程序體>
          }
          sub2()
          {
            局部變量定義
            <程序體>
          }
               .
               .
               .
          subN()
          {
            局部變量定義
            <程序體>
          }
    其中sub1(), ..., subN()代表用戶定義的子函數, 程序體指Turbo C 2.0
提供的任何庫函數調用語句、控制流程語句或其它用子函數調用語句等。
1. 數據類型    在Turbo C語言中, 每個變量在使用之前必須定義其數據類型。Turbo C有以
下幾種類型: 整型(int)、浮點型(float)、字符型(char)、指針型(*)、無值型
(void)以及結構(strUCt)和聯合(union)。其中前五種是Turbo C的基本數據類型、
后兩種數據類型(結構和聯合)將在第五章介紹。

    2.1 整型(int)
    一、整型數說明
    加上不同的修飾符, 整型數有以下幾種類型;
    signed short int     有符號短整型數說明。簡寫為short或int, 字長為2
                         字節共16位二進制數, 數的范圍是-32768~32767。
    signed long int      有符號長整型數說明。簡寫為long, 字長為4字節共
                         32位二進制數, 數的范圍是-2147483648~2147483647。
    unsigned short int   無符號短整型數說明。簡寫為unsigned int,  字長
                         為2字節共16位二進制數, 數的范圍是0~65535。
    unsigned long int    無符號長整型數說明。簡寫為unsigned long, 字長
                         為4字節共32位二進制數, 數的范圍是0~4294967295。
    二、整型變量定義
    可以用下列語句定義整型變量
    int a, b;            /*a、b被定義為有符號短整型變量*/
    unsigned long c;     /*c被定義為無符號長整型變量*/
    三、整型常數表示
    按不同的進制區分, 整型常數有三種表示方法:
    十進制數:  以非0開始的數
               如:220, -560, 45900
    八進制數:  以0開始的數
               如:06; 0106, 05788
    十六進制數:以0X或0x開始的數
               如:0X0D, 0XFF, 0x4e
    另外, 可在整型常數后添加一個"L"或"l"字母表示該數為長整型數, 如22L,
0773L, 0Xae4l。
    2.2 浮點型(float)     一、浮點數說明
    Turbo C中有以下兩種類型的浮點數:
    float      單浮點數。字長為4 個字節共32 位二進制數,   數的范圍是
               3.4x10-38E~3.4x10+38E。
    double     雙浮點數。字長為 8個字節共 64 位二進制數,  數的范圍是
               1.7x10-308E~1.7x10+308E。
    說明:
    浮點數均為有符號浮點數, 沒有無符號浮點數。
    二、浮點型變量定義
    可以用下列語句定義浮點型變量:
    float a, f;     /*a, f被定義為單浮點型變量*/
    double b;       /*b被定義為雙浮點型變量*/

    三、浮點常數表示
    例如:  +29.56, -56.33, -6.8e-18, 6.365
    說明:
    1. 浮點常數只有一種進制(十進制)。
    2. 所有浮點常數都被默認為double。
    3. 絕對值小于1的浮點數, 其小數點前面的零可以省略。如:0.22可寫為.22,
-0.0015E-3可寫為-.0015E-3。
    4. Turbo C默認格式輸出浮點數時, 最多只保留小數點后六位。
     2.3 字符型(char)
    加上不同的修飾符, 可以定義有符號和無符號兩種類型的字符型變量, 例如:
    char a:              /*a被定義為有符號字符變量*/
    unsigned char l;     /*l被定義為無符號字符變量*/
    字符在計算機中以其ASCII碼方式表示, 其長度為1個字節, 有符號字符型數
取值范圍為-128~127, 無符號字符型數到值范圍是0~255。因此在Turbo C語言中,
字符型數據在操作時將按整型數處理, 假如某個變量定義成char, 則表明該變量
是有符號的, 即它將轉換成有符號的整型數。
    Turbo C中規定對ASCII碼值大于0x80的字符將被認為是負數。例如ASCII 值
為0x8c的字符, 定義成char時,   被轉換成十六進制的整數0xff8c 。 這是因當
ASCII碼值大于0x80時, 該字節的最高位為1, 計算機會認為該數為負數,   對于
0x8c表示的數實際上是-74(8c的各位取反再加1), 而-74 轉換成兩字節整型數并
在計算機中表示時就是0xff8c(  對0074 各位取反再加1)  。  因此只有定義為
unsigned char 0x8c轉換成整型數時才是8c。這一點在處理大于0x80的ASCII碼
字符時(例如漢字碼)要非凡注重。一般漢字均定義為unsigned char(在以后的程
序中會經常碰到)。
    另外, 也可以定義一個字符型數組(關于數組后面再作具體介紹), 此時該數
組表示一個字符串。
    例如:
        char str[10];
    計算機在編譯時, 將留出連續10個字符的空間, 即str[0]到str[9]共10個變
量, 但只有前9個供用戶使用。第10個str[9]用來存放字符串終止符NULL即"/0",
但終止符是編編譯程序自動加上的, 這一點應非凡注重。
    二、字符常數表示
    能用符號表示的字符可直接用單引號括起來表示, 如'a', '9', 'Z',  也可用
該字符的ASCII碼值表示, 例如十進制數85表示大寫字母'U', 十六進制數0x5d表示
']', 八進制數0102表示大寫字母'B'。
    一些不能用符號表示的控制符, 只能用ASCII碼值來表示, 如十進制數10 表示
換行, 下六進制數0x0d表示回車, 八進制數033表示Esc。Turbo C2.0中也有另外一
種表示表示方法, 如'/033'表示Esc,  這里'/ 0' 符號后面的數字表示十六進制的
ASCII值當然這種表示方法也適用于可睦接用符號表示的字符。
    另外, Turbo C2.0中有些常用的字符用以下非凡規定來表示:
          規定符            等價于           含義
          '/f'               '/X0C'          換頁
          '/r'               '/X0D'          回車
          '/t'               '/X09'          制表鍵
          '/n'               '/X0A'          換行
          '//'               '/X5C'          /符
          '/''               '/X27'          '符
          '/"'               '/X22'          "符
    對于字符串常量, 一般用雙引號括起來表示, 如"Hello Turbo C2.0"。

    2.4  指針型(*)
    指針是一種非凡的數據類型, 在其它語言中一般沒有。指針是指向變量的地址,
實質上指針就是存貯單元的地址。  根據所指的變量類型不同,   可以是整型指針
(int *)、浮點型指針(float *)、字符型指針(char *)、結構指針(struct *)和聯
合指針(union *)(結構指針和聯合指針將在第4節中介紹)。
 
    2.5 無值型(void)
    無值型字節長度為0, 主要有兩個用途:  一是明確地表示一個函數不返回任何
值; 一是產生一個同一類型指針(可根據需要動態分配給其內存)。
    例如:
             void *buffer;    /*buffer被定義為無值型指針*/
2 要害字和標識符    3.1  要害字
    所謂要害字就是已被Turbo C2.0本身使用, 不能作其它用途使用的字。例如關
鍵字不能用作變量名、函數名等。
    Turbo C2.0有以下要害字:
    Turbo C2.0擴展的共11個
     asm       _cs       _ds       _es       _ss       cdecl
     far       near      huge      interrupt pascal
    由ANSI標準定義的共32個
     auto      double    int       struct    break     else
     long      switch    case      enum      register  typedef
     char      extern    return    union     const     float
     short     unsigned  continue  for       signed    void
     default   goto      sizeof    volatile  do        if
     while     static
    3.2 標識符
    所謂標識符是指常量、變量、語句標號以及用戶自定義函數的名稱。 Turbo C
2.0標識符的定義十分靈活。作為標識符必須滿足以下規則:
    1. 所有標識符必須由一個字母(a~z, A~Z)或下劃線(_)開頭;
    2. 標識符的其它部分可以用字母、下劃線或數字(0~9)組成;
    3. 大小寫字母表示不同意義, 即代表不同的標識符;
    4. 標識符只有前32個字符有效;
    5. 標識符不能使用Turbo C2.0的要害字。
    下面舉出幾個正確和不正確的標識符:
               正確                不正確
               smart               5smart
               _decision           bomb?
               key_board           key.board
               FLOAT               float

3. 變量    4.1  變量說明
    Turbo C2.0規定所有變量在使用前都必須中以說明。一條變量說明語句由數據
類型和其后的一個或多個變量名組成。變量說明的形式如下:
    類型 <變量表>;
    這里類型是指Turbo C2.0的有效數據類型。變量表是一個或多個標識符名, 每
個標識符之間用","分隔。
    例如:
          int i, j, k;   unsigned char c, str[5], *p;
    4.2 變量種類
    變量可以在程序中三個地方說明: 函數內部、函數的參數定義中或所有的函數
外部。根據所定義位置的不同, 變量可分為局部變量、形式參數和全程變量。
    一、局部變量
    局部變量是指在函數內部說明的變量(有時也稱為自動變量)。用要害字auto進
行說明, 當auto省略時, 所有的非全程變量都被認為是局部變量, 所以auto實際上
從來不用。
    局部變量在函數調用時自動產生, 但不會自動初始化, 隨函數調用的結束, 這
個變量也就自動消失了, 下次調用此函數時再自動產生, 還要再賦值, 退出時又自
動消失。
    二、形式參數
    形式參數是指在函數名后面的小括號里定義的變量, 用于接受來自調用函數的
參數。形式參數在函數內部可以象其它局部變量那樣來作用。
    例如:
     puthz(int x, int y, int color, char *p)
     {
          int i, j, k;   /*定義局部變量*/
          <程序體>
     }
    其中x, y, color, *p為函數的形式參數,  不需要再進行說明就可在該函數內
直使用。
    三、全程變量
    全程變量是指在所有函數之外說明的變量, 它在整個程序內部者是"可見的",
可以被任何一個函數使用, 并且在整個程序的運行中都保留其值。全程變量只要滿
足在使用它以前和函數以外這兩個條件, 可在程序的任何位置進行說明, 習慣上通
常在程序的主函數前說明。
    例如:
     #include<stdio.h>
     int test;                /*定義全程變量*/
     void f1(int x, float y); /*子函數說明*/
     void f2(void);           /*子函數說明*/
     main()
     {
          test=5;             /*給全程變量賦值*/
          f1(20, 5.5);        /*調用有形式參數的子函數f1()*/
                              /*test的值變成115*/
          f2();               /*調用f2(), test的值變為1150*/
     }
     void f1(int x, float y)
     {
          float z;            /*z定義為局部變量*/
          z=x*y;              /*計算*/
          test=test+z;
     }
     void f2(void)
     {
          int count=10;       /*定義局部變量并初始化*/
          test=test*count;
     }

    由于全程變量可被整個程序內的任何一個函數使用, 所以可作為函數之間傳遞
參數的手段, 但全程變量太多時, 內存開銷變大。
    4.3 變量存儲類型
    Turbo C2.0支持四種變量存儲類型。說明符如下:
     auto      static    extern    register
下面分別來介紹。
    一、auto
    auto稱為自動變量, 已在前面作了介紹, 這里不再重復。
    二、static
    static稱為靜態變量。根據變量的類型可以分為靜態局部變量和靜態全程變量。
    1. 靜態局部變量
    它與局部變量的區別在于: 在函數退出時, 這個變量始終存在, 但不能被其它
函數使用, 當再次進入該函數時, 將保存上次的結果。其它與局部變量一樣。
    2. 靜態全程變量
    Turbo C2.0答應將大型程序分成若干獨立模塊文件分別編譯, 然后將所有模塊
的目標文件連接在一起, 從而提高編譯速度, 同時也便于軟件的治理和維護。靜態
全程變量就是指只在定義它的源文件中可見而在其它源文件中不可見的變量。它與
全程變量的區別是: 全程變量可以再說明為外部變量(extern), 被其它源文件使用,
而靜態全程變量卻不能再被說明為外部的, 即只能被所在的源文件使用。
    三、extern
    extern稱為外部變量。為了使變量除了在定義它的源文件中可以使用外, 還要
被其它文件使用。因此,   必須將全程變量通知每一個程序模塊文件,   此時可用
extern來說明。
    例如:
        文件1為file1.c                  文件2為file2.c
    int i, j;/*定義全程變量*/        extern int i, j;/*說明將i, j從
                                                     文件1中復制過來*/
    char c;                          extern char c; /*將c復制過來*/
    void func1(int k);               func2()        /*用戶定義函數*/
                                     {
    main()                              static float k;/*定義靜態變量*/
    {                                   i=j*5/100;
          func1(20);/*調用函數*/        k=i/1.5;
          func2();                           .
          .                                  .
          .                                  .
          .                            }
     }
     func1(int k) /*用戶定義函數*/
     {
          j=k*100;
     }

    對于以上兩個文件file1.c和file2.c, 用Turbo C2.0的集成開發環境進行編譯
連接時, 首先應建立一個.prj的文件。例如file.prj, 該文件內容如下:
     file1.c
     file2.c
    然后將file.prj的文件名寫入主菜單Project中的Project Name項中。 再用F9
編譯連接, 就可產生一個文件名為fioe.exe的可執行文件。
    外部變量和FORTRAN語言中的COMMOM定義的公共變量一樣。
    四、register
    register稱為寄存器變量。它只能用于整型和字符型變量。定義符register說
明的變量被Turbo C2.0存儲在CPU的寄存器中,  而不是象普通的變量那樣存儲在內
存中, 這樣可以提高運算速度。但是Turbo C2.0只答應同時定義兩個寄存器變量,
一旦超過兩個, 編譯程序會自動地將超過限制數目的寄存器變量當作非寄存器變量
來處理。因此, 寄存器變量常用在同一變量名頻繁出現的地方。
    另外, 寄存器變量只適用于局部變量和函數的形式參數, 它屬于auto型變量,
因此, 不能用作全程變量。定義一個整型寄存器變量可寫成:
      register int a;
    對于以上所介紹的變量類型和變量存儲類型將會在以后的學習中, 通過例行程
序中的定義、使用來逐漸加深理解。
    4.4  數組變量
    所謂數組就是指具有相同數據類型的變量集, 并擁有共同的名字。數組中的每
個特定元素都使用下標來訪問。數組由一段連續的存貯地址構成, 最低的地址對應
于第一個數組元素, 最高的地址對應最后一個數組元素。數組可以是一維的、也可
以是多維的。Turbo C2.0象它高級語方一樣也使用數組變量。
    一、一維數組
    一維數組的說明格式是:
      類型  變量名[長度];
    類型是指數據類型, 即每一個數組元素的數據類型, 包括整數型、浮點型、字
符型、指針型以及結構和聯合。
    例如:
     int a[10];
     unsigned long a[20];
     char *s[5];
     char *f[];
    說明:
    1. 數組都是以0作為第一個元素的下標, 因此, 當說明一個int a[16] 的整型
數組時, 表明該數組有16個元素, a[0]~a[15], 一個元素為一個整型變量。
    2. 大多數字符串用一維數組表示。數組元素的多少表示字符串長度,  數組名
表示字符串中第一個字符的地址,   例如在語句char  str[ 8] 說明的數組中存入
"hello"字符串后, str表示第一個字母"h"所在的內存單元地址。str[0] 存放的是
字母"h"的ASCII碼值, 以此類推, str[4]存入的是字母"o"的ASCII碼值, str[5]則
應存放字符串終止符'/0'。
    3. Turbo C2.0對數組不作邊界檢查。例如用下面語句說明兩個數組
    char str1[5], str2[6];
    當賦給str1一個字符串"ABCDEFG"時, 只有"ABCDE"被賦給, "E" 將會自動的賦
給str2, 這點應非凡注重。
    三、多維數組
    多維數組的一般說明格式是:
       類型  數組名[第n維長度][第n-1維長度]......[第1維長度];
    這種說明方式與BASIC、FORTRAN等語言中多維數組的說明不一樣。
    例如:
      int m[3][2];       /*定義一個整數型的二維數組*/
      char c[2][2][3];   /*定義一個字符型的三維數組*/
    數組m[3][2]共有3*2=6個元素, 順序為:
      m[0][0], m[0][1], m[1][0], m[1][1], m[2][0], m[2][1];
    數組c[2][2][3]共有2*2*3=12個元素, 順序為:
      c[0][0][0], c[0][0][1], c[0][0][2],
      c[0][1][0], c[0][1][1], c[0][1][2],
      c[1][0][0], c[1][0][1], c[1][0][2],
      c[1][1][0], c[1][1][1], c[1][1][2],
    數組占用的內存空間(即字節數)的計算式為:
     字節數=第1維長度*第2維長度*...*第n維長度*該數組數據類型占用的字節數

    4.5  變量的初始化和賦值
    一、變量的初始化
    變量的初始化是指變量在被說明的同時賦給一個初值。Turbo C2.0中外部變量
和靜態全程變量在程序開始處被初始化, 局部變量包括靜態局部變量是在進入定義
它們的函數或復合語句時才作初始化。所有全程變量在沒有明確的初始化時將被自
動清零, 而局部變量和寄存器變量在未賦值前其值是不確定的。
    對于外部變量和靜態變量, 初值必須是常數表達式, 而自動變量和寄存器變量
可以是任意的表達式, 這個表達式可以包括常數和前面說明過的變量和函數。
    1. 單個變量的初始化
    例如:
     float f0, f1=0.2;/*定義全程變量, 在初始化時f0被清零, f1被賦0.2*/
     main()
     {
          static int i=10, j; /*定義靜態局部變量, 初始化時i被賦10, j不確
                              定*/
          int k=i*5;          /*定義局部變量, 初始化時k被賦10*5=50*/
          char c='y';         /*定義字符型指什變量并初始化*/
          .
          .
          .
     }
    2. 數組變量的初始化
    例如:
     main()
     {
          int p[2][3]={{2, -9, 0}, {8, 2, -5}};  /*定義數組p并初始化/*
          int m[2][4]={{27, -5, 19, 3}, {1, 8, -14, -2}};/*定義數組m并初
                                                         始化*/
          char *f[]={'A', 'B', 'C'};         /*定義數組f并初始化*/
          .
          .
          .
     }
    從上例可以看出: Turbo C2.0中數組進行初始化有下述規則:
    (1) 數組的每一行初始化賦值用"{}"并用","分開, 總的再加一對"{}"括起來,
最后以";"表示結束。
    (2) 多維數組的存儲是按最右維數的變量變化最快的原則。
    (3) 多維數組存儲是連續的, 因此可以用一維數組初始化的辦法來初始化多維
數組。
    例如:
     int x[2][3]={1, 2, 3, 4, 5, 6};/*用一維數組來初始化二維數組*/
    (4) 對數組初始化時, 假如初值表中的數據個數比數組元素少, 則不足的數組
元素用0來填補。
    (5) 對指針型變量數組可以不規定維數, 在初始化賦值時, 數組維數從0 開始
被連續賦值。
    例如:
     char *f[]={'a', 'b', 'c'};
    初始化時將會給3個字符指針賦值, 即: *f[0]='a', *f[1]='b', *f[2]='c'。

    3. 指針型變量的初始化
    例如:
     main()
     {
          int *i=7899;        /*定義整型數指針變量并初始化*/
          float *f=3.1415926; /*定義浮點數指針變量并初始化*/
          char *s="Good";     /*定義字符型指針變量并初始化*/
          .
          .
          .
     }
    二、變量的賦值
    變量賦值是給已說明的變量賦給一個特定值。
    1. 單個變量的賦值
    (1) 整型變量和浮點變量
    這兩種變量采用下列格式賦值
          變量名=表達式;
    例如:
     main()
     {
          int a, m;      /*定義局部整型變量a, m*/
          float n;       /*定義局部浮點變量f*/
          a=100, m=20;   /*給變量賦值*/
          n=a*m*0.1;
          .
          .
          .
     }
    說明:
    Turbo C2.0中答應給多個變量賦同一值時可用連等的方式。
    例如:
     main()
     {
          int a, b, c;
          a=b=c=0;       /*同時給a,b,c賦值*/
          .
          .
          .
     }
    (2)  字符型變量
    字符型變量可以用三種方法賦值。
    例如:
     main()
     {
          char a0, a1, a2;    /*定義局部字符型變量a0, a1, a2*/
          a0='b';             /*將字母b賦給a0*/
          a1=50;              /*將數字2(十進制ASCII值為50賦給a1*/
          a2='/x0d';          /*將回車符賦給a2*/
          .
          .
          .
     }

    (3) 指針型變量
    例如:
     main()
     {
          int *i;
          char *str;
          *i=100;
          str="Good";
          .
          .
          .
     }
    *i表示i是一個指向整型數的指針, 即*i是一個整型變量, i是一個指向該整型
變量的地址。
    *str表示str是一個字符型指針, 即保留某個字符地址。在初始化時, str沒有
什么非凡的值, 而在執行str="Good"時, 編譯器先在目標文件的某處保留一個空間
存放"Good/0"的字符串, 然后把這個字符串的第一個字母"G"的地址賦給str, 其中
字符串結尾符"/0"是編譯程序自動加上的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品美女视频| 久久亚洲国产精品成人av秋霞| 国a精品视频大全| 91精品国产91久久久久福利| 色青青草原桃花久久综合| 国产精品午夜一区二区欲梦| 国产精品免费观看在线| 日韩在线激情视频| 成人h猎奇视频网站| 亚洲国产精品福利| 91影视免费在线观看| 欧洲亚洲女同hd| 91国自产精品中文字幕亚洲| 久久精品久久久久| 最近2019中文免费高清视频观看www99| 成人午夜在线视频一区| 国产美女精彩久久| 亚洲人在线视频| y97精品国产97久久久久久| 最近2019中文字幕第三页视频| 国产做受高潮69| 欧美成人精品一区二区三区| 91夜夜未满十八勿入爽爽影院| 久热精品视频在线观看一区| 亚洲大胆美女视频| 国产精品jvid在线观看蜜臀| 色香阁99久久精品久久久| 91麻豆国产语对白在线观看| 久久99精品国产99久久6尤物| 亚洲最大的成人网| 一区二区欧美激情| 尤物yw午夜国产精品视频| 亚洲第一区第一页| 久久久久999| 亚洲欧美精品中文字幕在线| 欧美—级a级欧美特级ar全黄| 色婷婷综合成人av| 国模gogo一区二区大胆私拍| 91日韩在线播放| 欧美精品一二区| 欧美黑人巨大精品一区二区| 久久久亚洲欧洲日产国码aⅴ| 日韩美女主播视频| 久久欧美在线电影| 一区二区在线视频| 亚洲黄在线观看| 国产精品久久久久久一区二区| 欧洲日本亚洲国产区| 亚洲电影免费观看| 中文字幕av一区| 中文字幕一区电影| 亚洲级视频在线观看免费1级| 亚洲欧美中文日韩在线v日本| 成人黄色av播放免费| 欧美精品一二区| 日韩精品视频在线观看免费| 亚洲аv电影天堂网| 久久九九免费视频| 国产日韩欧美中文| 亚洲色图综合网| www.亚洲成人| 欧美乱大交xxxxx另类电影| 国产女人精品视频| 久久久久久尹人网香蕉| 亚洲一区二区三区在线免费观看| 欧美视频在线免费| 国产精品国产三级国产aⅴ9色| 欧美性xxxx极品高清hd直播| 国产视频精品免费播放| 久久久久久久久综合| 久热在线中文字幕色999舞| 亚洲视频国产视频| 亚洲欧美www| 91禁外国网站| 日韩中文在线中文网在线观看| 久久青草精品视频免费观看| 成人国产精品一区二区| 日本精品视频网站| 国产精品免费久久久| 97精品一区二区视频在线观看| 97色在线观看| 欧美日韩美女视频| 欧美亚洲成人免费| 国产一区欧美二区三区| 国产综合香蕉五月婷在线| 国产在线999| 欧美激情亚洲国产| 久久亚洲精品小早川怜子66| 精品久久久久国产| 成人高清视频观看www| 久久综合免费视频| 黄色一区二区在线| 亚洲视频电影图片偷拍一区| 欧美高清视频一区二区| 4444欧美成人kkkk| 亚洲va欧美va国产综合久久| 欧美最猛性xxxx| 中文字幕在线日韩| 日韩精品免费在线| 2019中文字幕在线观看| 国产伦精品一区二区三区精品视频| 亚洲免费小视频| 成人国产在线视频| 国产亚洲精品一区二区| 亚洲第一偷拍网| 一级做a爰片久久毛片美女图片| 日韩国产中文字幕| 日韩免费精品视频| 91网在线免费观看| 午夜精品蜜臀一区二区三区免费| 亚洲男人av电影| 日韩免费不卡av| 亚洲高清在线观看| 在线观看日韩欧美| 日韩毛片在线观看| 国产一区二区三区在线免费观看| 乱亲女秽乱长久久久| 欧美专区国产专区| 97色在线播放视频| 国模叶桐国产精品一区| 午夜精品免费视频| 欧美一区三区三区高中清蜜桃| 中文字幕国产日韩| 精品福利在线视频| 中文字幕综合在线| 日韩美女av在线免费观看| 亚洲毛茸茸少妇高潮呻吟| 亚洲激情视频在线观看| 国产精品一区二区女厕厕| 茄子视频成人在线| 综合国产在线视频| 欧美日韩黄色大片| 欧美老女人bb| 日韩av免费网站| 精品视频在线播放色网色视频| 日韩美女主播视频| 精品国产91久久久| 久久久久成人精品| 日韩高清免费观看| 91久热免费在线视频| 国内精品在线一区| 久久久久成人网| 成人黄色中文字幕| 欧美激情伊人电影| 精品国内亚洲在观看18黄| 国产成人免费91av在线| 欧美日韩国产色视频| 亚洲伊人成综合成人网| 欧美伦理91i| 国产激情综合五月久久| 92版电视剧仙鹤神针在线观看| 欧美伦理91i| 亚洲电影成人av99爱色| 最近2019年中文视频免费在线观看| 91精品视频大全| 国产精品亚洲自拍| 久久久久久久久久久免费| 51精品在线观看| 亚洲视频免费一区| 久久天天躁狠狠躁老女人| 日韩av免费在线观看| 亚洲精品久久久久国产| 久久久久久久久久久久久久久久久久av| 久久视频在线观看免费|