c語言頭函數是什么 c語言函數頭包括哪些

什么是C語言函數,簡單明了讓你知道

函數是一組一起執行一個任務的語句。每個 C 程序都至少有一個函數,即主函數 main() ,所有簡單的程序都可以定義其他額外的函數。

專業成都網站建設公司,做排名好的好網站,排在同行前面,為您帶來客戶和效益!創新互聯為您提供成都網站建設,五站合一網站設計制作,服務好的網站設計公司,網站設計制作、成都網站設計負責任的成都網站制作公司!

您可以把代碼劃分到不同的函數中。如何劃分代碼到不同的函數中是由您來決定的,但在邏輯上,劃分通常是根據每個函數執行一個特定的任務來進行的。

C 標準庫提供了大量的程序可以調用的內置函數。例如,函數 strcat() 用來連接兩個字符串,函數 memcpy() 用來復制內存到另一個位置。

函數還有很多叫法,比如方法、子例程或程序,等等。

C 語言中的函數定義的一般形式如下:

在 C 語言中,函數由一個函數頭和一個函數主體組成。下面列出一個函數的所有組成部分:

以下是 max() 函數的源代碼。該函數有兩個參數 num1 和 num2,會返回這兩個數中較大的那個數:

創建 C 函數時,會定義函數做什么,然后通過調用函數來完成已定義的任務。

當程序調用函數時,程序控制權會轉移給被調用的函數。被調用的函數執行已定義的任務,當函數的返回語句被執行時,或到達函數的結束括號時,會把程序控制權交還給主程序。

調用函數時,傳遞所需參數,如果函數返回一個值,則可以存儲返回值。例如:

如上把 max() 函數和 main() 函數放一塊,編譯源代碼。當運行最后的可執行文件時,會產生下列結果:

形式參數就像函數內的其他局部變量,在進入函數時被創建,退出函數時被銷毀。

當調用函數時,有兩種向函數傳遞參數的方式:

默認情況下,C 使用 傳值調用 來傳遞參數。一般來說,這意味著函數內的代碼不能改變用于調用函數的實際參數。

C語言的頭函數有什么作用?包括了什么東西在里面?

頭函數在預處理里面,也就是在里面包含了很多的函數原型以及定義。

比如stdio.h中就包含printf,scanf等等函數。

不包含會報警告。

C語言中的" 函數 頭文件 和 返回值"。這三種定義是什么?怎么通俗的去理解呢?

C語言

函數:C語言里執行的就是函數,函數里有很多執行語句,這個函數并不是數學里面的函數,可以理解成一個容器,這個容器里有很多可以執行的語句。C語言從main函數開始執行。

頭文件:就是寫在開頭用#include寫的語句,如

#includestdio.h

#includemath.h

#includestring.h

里面的英文就是“庫函數”,函數里的執行語句都是需要從庫函數里調用,這個調用行為不用咱們管。比如:printf函數、scanf函數就需要頭文件包含stdio.h這個庫函數。

pow(求冪函數)就需要頭文件包含math.h。

返回值:就是一個函數返回的值,任何一個沒有定義成void型的函數都有返回值,定義void型的函數沒有返回值。如:

int hanshu()

{

return 1;

}

這個hanshu函數的返回值就是1。

如果再有語句,如下:

int a;

a=hanshu();

那么a的值就是1

本人純原創,拒絕復制。如有疑問請您追問,滿意的話記得采納哦~~~

c語言的函數頭

在一個函數定義中,函數體之前的所有部分稱為函數頭,它給出了該函數的返回類型、每個參數的次序和類型等函數原型信息,所以當沒有專門給出函數原型說明語句時,系統就從函數頭中獲取函數原型信息。

一個函數的原型語句就是其函數頭的一個拷貝,當然要在最后加上語句接上結束符分號。函數原型語句與函數頭也有細微的差別,在函數原型語句中,其參數表中的每個參數允許只保留參數類型,而省略參數名,并且若使用參數名也允許與函數頭中對應的參數名不同。

全文如下:

一)、定義格式

類型名 函數名 ([參數表]) 函數體

類型名為系統或用戶已定義的一種數據類型,它是函數執行過程中通過return語句要求返回的值的類型,又稱為該函數的類型。當一個函數不需要通過return語句返回一個值時,稱為無返回值函數或無類型函數,此時需要使用保留字void作為類型名。當類型名為int時,可以省略不寫,但為了清楚起見,還是寫明為好。

函數名是用戶為函數所起的名字,它是一個標識符,應符合C++標識符的一般命名規則,用戶通過使用這個函數名和實參表可以調用該函數。

參數表又稱形式參數表,它包含有任意多個(含0個,即沒有)參數說明項,當多于一個時其前后兩個參數說明項之間必須用逗號分開。每個參數說明項由一種已定義的數據類型和一個變量標識符組成,該變量標識符成為該函數的形式參數,簡稱形參,形參前面給出的數據類型稱為該形參的類型。一個函數定義中的參數表可以被省略,表明該函數為無參函數,若參數表用void取代,則也表明是無參函數,若參數表不為空,同時又不是保留字void,則稱為帶參函數。

函數體是一條復合語句,它以左花括號開始,到右花括號結束,中間為一條或若干條C++語句。

在一個函數的參數表中,每個參數可以為任一種數據類型,包括普通類型、指針類型、數組類型、引用類型等,一個函數的返回值可以是除數組類型之外的任何類型,包括普通類型、指針類型和引用類型等。另外,當不需要返回值時,應把函數定義為void類型。

二)、定義格式舉例

(1) void f1() {...}

(2) void f2(int x) {...}

(3) int f3(int x,int* p) {...}

(4) char* f4(char a[]){...}

(5) int f5(int x,double d) {...}

(6) int f6(int b[10], int n) {...}

(7) void f7(float c[][N], int m, float max) {...}

(8) bool f8(ElemType* bt, ElemType item) {...}

在第一條函數定義中,函數名為f1,函數類型為void,參數表為空,此函數是一個無參無類型函數。若在f1后面的圓括號內寫入保留字void,也表示為無參函數。

在第二條函數定義中,僅帶有一個類型為int的形參變量x,該函數沒有返回值。

在第三條函數定義中,函數名為f3,函數類型為int,函數參數為x和p,其中x為int型普通參數,p為int*型指針參數。

在第四條函數定義中,函數名為f4,函數類型為char*,即字符指針類型,參數表中包含一個一維字符數組參數。注意:在定義任何類型的一維數組參數時,不需要給出維的尺寸,當然給出也是允許的,但沒有任何意義。

在第五條函數定義中,函數名為f5,返回類型為int,該函數帶有兩個形參,一個為 整型引用變量x,另一個為雙精度變量d。

在第六條函數定義中,函數名為f6,函數類型為int,即整型引用,該函數帶有兩個形參,一個是整型數組b,另一個是整型變量n。在這里定義形參數組b所給出的維的尺寸10可以被省略。

在第七條函數定義中,函數名為f7,無函數類型,參數表中包含三個參數,一個為二維單精度型數組c,第二個為整型變量m,第三個為單精度引用變量max。注意:當定義一個二維數組參數時,第二維的尺寸必須給出,并且必須是一個常量表達式,第一維尺寸可給出也可不給出,其作用相同。

在第八條函數定義中,函數名為f8,返回類型為bool,即邏輯類型,該函數帶有兩個參數,一個為形參bt,它為ElemType的指針引用類型,另一個為形參item,它是ElemType的引用類型,其中ElemType為一種用戶定義的類型或是通過typedef語句定義的一個類型的別名。

三)、有關函數定義的幾點說明

1. 函數原型語句

在一個函數定義中,函數體之前的所有部分稱為函數頭,它給出了該函數的返回類型、每個參數的次序和類型等函數原型信息,所以當沒有專門給出函數原型說明語句時,系統就從函數頭中獲取函數原型信息。

一個函數必須先定義或聲明而后才能被調用,否則編譯程序無法判斷該調用的正確性。一個函數的聲明是通過使用一條函數原型語句實現的,當然使用多條相同的原型語句聲明同一個函數雖然多余但也是允許的,編譯時不會出現錯誤。

在一個完整的程序中,函數的定義和函數的調用可以在同一個程序文件中,也可以處在不同的程序文件中,但必須確保函數原型語句與函數調用表達式出現在同一個文件中,并且函數原型語句出現在前,函數的調用出現在后。

通常把一個程序中用戶定義的所有函數的原型語句組織在一起,構成一個頭文件,讓該程序中所含的每個程序文件的開始(即所有函數定義之前)包含這個頭文件(通過#include命令實現),這樣不管每個函數的定義在哪里出現,都能夠確保函數先聲明后使用(即調用)這一原則的實現。

一個函數的原型語句就是其函數頭的一個拷貝,當然要在最后加上語句接上結束符分號。函數原型語句與函數頭也有細微的差別,在函數原型語句中,其參數表中的每個參數允許只保留參數類型,而省略參數名,并且若使用參數名也允許與函數頭中對應的參數名不同。

2. 常量形參

在定義一個函數時,若只允許函數體訪問一個形參的值,不允許修改它的值,則應把該形參說明為常量,這只要在形參說明的前面加上const保留字進行修飾即可。如:

void f9(const int x, const char y);

void f10(const char* p, char key);

在函數f9的函數體中只允許使用x和y的值,不允許修改它們的值。在函數f10的函數體中只允許使用p所指向的字符對象或字符數組對象的值,不允許修改它們的值,但在函數體中既允許使用也允許修改形參key的值。

3. 缺省參數

在一個函數定義中,可根據需要對參數表末尾的一個或連續若干個參數給出缺省值,當調用這個函數時,若實參表中沒有給出對應的實參,則形參將采用這個缺省值。如:

void f11(int x, int y=0) {...}

int f12(int a[], char op='+', int k=10) {...}

函數f11的定義帶有兩個參數,分別為整型變量x和y,并且y帶有缺省值0,若調用該函數的表達式為f11(a,b),將把a的值賦給x,把b的值賦給y,接著執行函數體;若調用該函數的表達式為f11(a+b),則也是正確的調用格式,它將把a+b的值賦給x,因y沒有對應的實參,將采用缺省值0,參數傳送后接著執行函數體。

函數f12的定義帶有三個參數,其中后兩個帶有缺省值,所以調用它的函數格式有三種,一種只帶一個實參,用于向形參a傳送數據,后兩個形參采用缺省值,第二種帶有兩個實參,用于分別向形參a和op傳送數據,第三個形參采用缺省值,第三種帶有三個實參,分別用于傳送給三個形參。

若一個函數帶有專門的函數原型語句,則形參的缺省值只能在該函數原型語句中給出,不允許在函數頭中給出。如對于上述的f11和f12函數,其對應的函數原型語句分別為:

void f11(int x, int y=0);

int f12(int a[], char op='+', int k=10);

函數定義應分別改寫為:

void f11(int x, int y) {...}

int f12(int a[], char op, int k) {...}

4. 數組參數

在函數定義中的每個數組參數實際上是指向元素類型的指針參數。對于一維數組參數說明:

數據類型 數組名[]

它與下面的指針參數說明完全等價:

數據類型 *指針變量名

其中指針變量名就是數組參數說明中的數組名。如對于f12函數定義中的數組參數說明int a[],等價于指針參數說明int* a。也就是說,數組參數說明中的數組名a是一個類型為int*的形參。注意:在變量定義語句中定義的數組,其數組名代表的是一個數組,它的值是指向第一個元素的指針常量,這與數組形參的含義有區別。

對于二維數組參數說明:

數據類型 參數名[][第二維尺寸]

它與下面的指針參數說明完全等價:

數據類型 (*參數名)[第二維尺寸]

如對于f7函數定義中的二維數組參數說明float c[][N],等價于指針參數說明float(*c)[N]。

5. 函數類型

當調用一個函數時就執行一遍循環體,對于類型為非void的函數,函數體中至少必須帶有一條return語句,并且每條return語句必須帶有一個表達式,當執行到任一條return語句時,將計算出它的表達式的值,結束整個函數的調用過程,把這個值作為所求的函數值帶回到調用位置,參與相應的運算;對于類型為void的函數,它不需要返回任何函數值,所以在函數體中既可以使用return語句,也可以不使用,對于使用的每條return語句不允許也不需要帶有表達式,當執行到任一條return語句時,或執行到函數體最后結束位置時,將結束函數的調用過程,返回到調用位置向下繼續執行。

6. 內聯函數

當在一個函數的定義或聲明前加上關鍵字inline則就把該函數聲明為內聯函數。計算機在執行一般函數的調用時,無論該函數多么簡單或復雜,都要經過參數傳遞、執行函數體和返回等操作。若把一個函數聲明為內聯函數后,在程序編譯階段系統就有可能把所有調用該函數的地方都直接替換為該函數的執行代碼,由此省去函數調用時的參數傳遞和返回操作,從而加快整個程序的執行速度。通常可把一些相對簡單的函數聲明為內聯函數,對于較復雜的函數則不應聲明為內聯函數。從用戶的角度看,調用內聯函數和一般函數沒有任何區別。下面就是一個內聯函數定義的例子,它返回形參值的立方。

inline int cube(int n)

{

return n*n*n;

}

C語言主函數和頭文件是什么意思

主函數是一個程序的入口,程序第一個執行的函數。頭文件就是一個函數的倉庫,在C中使用某函數必須包含對應頭文件。

c++函數頭是什么意思

c++函數頭,即頭文件函數。

在C語言家族程序中,頭文件被大量使用。一般而言,每個C++/C程序通常由頭文件(header files)和定義文件(definition files)組成。頭文件作為一種包含功能函數、數據接口聲明的載體文件,主要用于保存程序的聲明(declaration),而定義文件用于保存程序的實現 (implementation)。 .c就是你寫的程序文件。

C/C++頭文件一覽

C

#include assert.h//設定插入點

#include ctype.h //字符處理

#include errno.h //定義錯誤碼

#include float.h //浮點數處理

#include iso646.h //對應各種運算符的宏

#include limits.h//定義各種數據類型最值的常量

#include locale.h//定義本地化C函數

#include math.h //定義數學函數

#include setjmp.h //異常處理支持

#include signal.h //信號機制支持

#include stdarg.h //不定參數列表支持

#include stddef.h //常用常量

#include stdio.h //定義輸入/輸出函數

#include stdlib.h//定義雜項函數及內存分配函數

#include string.h//字符串處理

#include time.h //定義關于時間的函數

#include wchar.h //寬字符處理及輸入/輸出

#include wctype.h//寬字符分類

傳統C++

#include fstream.h  //改用fstream

#include iomanip.h  //改用iomainip

#include iostream.h //改用iostream

#include strstrea.h //該類不再支持,改用sstream中的stringstream

————————————————————————————————

標準C++ 

#include algorithm  //STL 通用算法

#include bitset //STL 位集容器

#include cctype //字符處理

#include cerrno //定義錯誤碼

#include cfloat //浮點數處理

#include ciso646 //對應各種運算符的宏

#include climits //定義各種數據類型最值的常量

#include clocale //定義本地化函數

#include cmath  //定義數學函數

#include complex //復數類

#include csignal //信號機制支持

#include csetjmp //異常處理支持

#include cstdarg //不定參數列表支持

#include cstddef //常用常量

#include cstdio //定義輸入/輸出函數

#include cstdlib //定義雜項函數及內存分配函數

#include cstring //字符串處理

#include ctime  //定義關于時間的函數

#include cwchar //寬字符處理及輸入/輸出

#include cwctype //寬字符分類

#include deque  //STL 雙端隊列容器

#include exception  //異常處理類

#include fstream   //文件輸入/輸出

#include functional //STL 定義運算函數(代替運算符)

#include limits //定義各種數據類型最值常量

#include list//STL 線性列表容器

#include locale //本地化特定信息

#include map //STL 映射容器

#include memory //STL通過分配器進行的內存分配

#includenew //動態內存分配

#include numeric //STL常用的數字操作

#include iomanip   //參數化輸入/輸出

#include ios //基本輸入/輸出支持

#include iosfwd //輸入/輸出系統使用的前置聲明

#include iostream  //數據流輸入/輸出

#include istream //基本輸入流

#include iterator //STL迭代器

#include ostream //基本輸出流

#include queue  //STL 隊列容器

#include set //STL 集合容器

#include sstream //基于字符串的流

#include stack  //STL 堆棧容器

#include stdexcept  //標準異常類

#include streambuf  //底層輸入/輸出支持

#include string //字符串類

#include typeinfo //運行期間類型信息

#include utility //STL 通用模板類

#include valarray //對包含值的數組的操作

#include vector //STL 動態數組容器

————————————————————————————————

C99增加的部分

#include complex.h //復數處理

#include fenv.h//浮點環境

#include inttypes.h//整數格式轉換

#include stdbool.h //布爾環境

#include stdint.h //整型環境

#include tgmath.h //通用類型數學宏

頭文件 ctype.h

字符處理函數: 本類別函數用于對單個字符進行處理,包括字符的類別測試和字符的大小寫轉換

----------------------------------------

字符測試是否字母和數字 isalnum

是否字母 isalpha

是否控制字符 iscntrl

是否數字 isdigit

是否可顯示字符(除空格外) isgraph

是否可顯示字符(包括空格) isprint

是否既不是空格,又不是字母和數字的可顯示字符 ispunct

是否空格 isspace

是否大寫字母 isupper

是否16進制數字(0-9,A-F)字符 isxdigit

字符大小寫轉換函數 轉換為大寫字母 toupper

轉換為小寫字母 tolower

頭文件 local.h

地區化: 本類別的函數用于處理不同國家的語言差異。

----------------------------------------

地區控制 地區設置 setlocale

數字格式約定查詢 國家的貨幣、日期、時間等的格式轉換 localeconv

頭文件 math.h

數學函數: 本分類給出了各種數學計算函數,必須提醒的是ANSIC標準中的數據格式并不符合IEEE754標準,一些C語言編譯器卻遵循IEEE754(例如frinklin C51)

----------------------------------------

反余弦 acos

反正弦 asin

反正切 atan

反正切2 atan2

余弦 cos

正弦 sin

正切 tan

雙曲余弦 cosh

雙曲正弦 sinh

雙曲正切 tanh

指數函數 exp

指數分解函數 frexp

乘積指數函數 fdexp

自然對數 log

以10為底的對數 log10

浮點數分解函數 modf

冪函數 pow

平方根函數 sqrt

求下限接近整數 ceil

絕對值 fabs

求上限接近整數 floor

求余數 fmod

頭文件 setjmp.h io.h

本分類函數用于實現在不同底函數之間直接跳轉代碼。

----------------------------------------

保存調用環境 setjmp

恢復調用環境 longjmp

頭文件 signal.h

信號處理: 該分類函數用于處理那些在程序執行過程中發生例外的情況。

----------------------------------------

指定信號處理函數 signal

發送信號 raise

頭文件 stdarg.h

可變參數處理: 本類函數用于實現諸如printf,scanf等參數數量可變底函數。

----------------------------------------

可變參數訪問宏

可變參數開始宏 va_start

可變參數結束宏 va_end

可變參數訪問宏 訪問下一個可變參數宏 va_arg

頭文件 stdio.h

輸入輸出函數:該分類用于處理包括文件、控制臺等各種輸入輸出設備,各種函數以“流”的方式實現

----------------------------------------

刪除文件 remove

修改文件名稱 rename

生成臨時文件名稱 tmpfile

得到臨時文件路徑 tmpnam

文件訪問 關閉文件 fclose

刷新緩沖區 fflush

打開文件 fopen

將已存在的流指針和新文件連接 freopen

設置磁盤緩沖區 setbuf

設置磁盤緩沖區 setvbuf

格式化輸入與輸出函數

格式輸出 fprintf

格式輸入 fscanf

格式輸出(控制臺) printf

格式輸入(控制臺) scanf

格式輸出到緩沖區 sprintf

從緩沖區中按格式輸入 sscanf

格式化輸出 vfprintf

格式化輸出 vprintf

格式化輸出 vsprintf

字符輸入輸出函數

輸入一個字符 fgetc

字符串輸入 fgets

字符輸出 fputc

字符串輸出 fputs

字符輸入(控制臺) getc

字符輸入(控制臺) getchar

字符串輸入(控制臺) gets

字符輸出(控制臺) putc

字符輸出(控制臺) putchar

字符串輸出(控制臺) puts

字符輸出到流的頭部 ungetc

直接輸入輸出

直接流讀操作 fread

直接流寫操作 fwrite

文件定位函數

得到文件位置 fgetpos

文件位置移動 fseek

文件位置設置 fsetpos

得到文件位置 ftell

文件位置復零位 remind

錯誤處理函數

錯誤清除 clearerr

文件結尾判斷 feof

文件錯誤檢測 ferror

得到錯誤提示字符串 perror

頭文件 stdlib.h

實用工具函數: 本分類給出了一些函數無法按以上分類,但又是編程所必須要的。

----------------------------------------

字符串轉換函數

字符串轉換為整數 atoi

字符串轉換為長整數 atol

字符串轉換為浮點數 strtod

字符串轉換為長整數 strtol

字符串轉換為無符號長整型 strtoul

偽隨機序列產生函數

產生隨機數 rand

設置隨機函數的起動數值 srand

存儲管理函數

分配存儲器 calloc

釋放存儲器 free

存儲器分配 malloc

重新分配存儲器 realloc

環境通信

中止程序 abort

退出程序執行,并清除環境變量 atexit

退出程序執行 exit

讀取環境參數 getenv

程序掛起,臨時執行一個其他程序 system

搜索和排序工具 二分查找(數據必須已排序) bsearch

快速排序 qsort

整數運算函數 求絕對值 abs

得到除法運算底商和余數 div

求長整形底絕對值 labs

求長整形除法的商和余數 ldiv

多字節字符函數 得到多字節字符的字節數 mblen

得到多字節字符的字節數 mbtowc

多字節字符轉換 wctomb

多字節字符的字符串操作 將多字節串轉換為整數數組 mbstowcs

將多字節串轉換為字符數組 mcstowbs

頭文件 string.h

字符串處理: 本分類的函數用于對字符串進行合并、比較等操作

----------------------------------------

字符串拷貝 塊拷貝(目的和源存儲區不可重疊) memcpy

塊拷貝(目的和源存儲區可重疊) memmove

串拷貝 strcpy

按長度的串拷貝 strncpy

字符串連接函數 串連接 strcat

按長度連接字符串 strncat

串比較函數 塊比較 memcmp

字符串比較 strcmp

字符串比較(用于非英文字符) strcoll

按長度對字符串比較 strncmp

字符串轉換 strxfrm

字符與字符串查找 字符查找 memchr

字符查找 strchr

字符串查找 strcspn

字符串查找 strpbrk

字符串查找 strspn

字符串查找 strstr

字符串分解 strtok

雜類函數 字符串設置 memset

錯誤字符串映射 strerror

求字符串長度 strlen

頭文件 time.h

日期和時間函數: 本類別給出時間和日期處理函數

----------------------------------------

時間操作函數得到處理器時間 clock

得到時間差 difftime

設置時間 mktime

得到時間 time

時間轉換函數 得到以ASCII碼表示的時間 asctime

得到字符串表示的時間 ctime

得到指定格式的時間 strftime

序號 庫類別 頭文件

----------------------------------------

1 錯誤處理 errno.h

2 字符處理 ctyphe.

3 地區化 local.h

4 數學函數 math.h

5 信號處理 signal.h

6 輸入輸出 stdio.h

7 實用工具程序 stdlib.h

8 字符串處理 string.h

當前標題:c語言頭函數是什么 c語言函數頭包括哪些
文章網址:http://m.kartarina.com/article0/hgspoo.html

成都網站建設公司_創新互聯,為您提供軟件開發網站設計公司App開發定制開發網站制作企業建站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站建設網站維護公司
主站蜘蛛池模板: 亚洲精品偷拍无码不卡av| 男男AV纯肉无码免费播放无码| 无码人妻精品一区二区三区99不卡 | 人妻无码一区二区三区免费| 日韩人妻无码精品久久免费一| av无码久久久久不卡免费网站 | yy111111少妇无码影院| 麻豆aⅴ精品无码一区二区| 无码人妻一区二区三区在线水卜樱| 亚洲国产精品无码成人片久久| 成年轻人电影www无码| 毛片无码免费无码播放| 亚洲一区无码中文字幕| 无码不卡中文字幕av| 无码人妻精品一区二区三18禁| 人妻少妇伦在线无码| 亚洲成a人片在线观看天堂无码| 亚洲精品无码Av人在线观看国产| 色欲AV永久无码精品无码| 亚洲成AV人在线观看天堂无码| 亚洲精品无码久久久久AV麻豆| 无码日本精品XXXXXXXXX| 无码专区人妻系列日韩精品少妇| 国产精品亚洲а∨无码播放| 亚洲精品无码你懂的网站| 毛片亚洲AV无码精品国产午夜| 免费无码又爽又刺激聊天APP| 亚洲av永久中文无码精品| 无码不卡av东京热毛片| 无码GOGO大胆啪啪艺术| 久久精品亚洲中文字幕无码网站| 亚洲精品无码午夜福利中文字幕 | 精品无码久久久久久久久水蜜桃 | 成人免费无遮挡无码黄漫视频| 在线观看成人无码中文av天堂 | 无码一区二区三区爆白浆| 亚洲中文字幕久久无码| 久久久无码精品人妻一区| 在线精品免费视频无码的| 日韩精品人妻系列无码av东京| 97无码免费人妻超级碰碰碰碰 |