老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

第1章-C語言基礎<超詳細>-創新互聯

目錄

成都地區優秀IDC服務器托管提供商(創新互聯).為客戶提供專業的達州主機托管,四川各地服務器托管,達州主機托管、多線服務器托管.托管咨詢專線:18980820575

前言

內容介紹

一個簡單的C程序

第一個C程序 - 經典的“hello world”

printf的使用???????

數據類型

C語言中的數據類型

字符型

整型

浮點型

補充?

常量和變量

常量

變量

格式控制字符

格式控制字符一覽表

格式控制字符的特殊用法

特殊用法總結

轉義字符

類型轉換

自動轉換

強制轉換

ASCII表

C語言關鍵字

register

static

const

auto

extern

sizeof

typedef

volatile

C語言運算符

算數運算符

關系運算符

邏輯運算符??

位運算符

位移運算符

條件運算符

逗號運算符

自增自減運算符

C語言運算符優先級

易錯警示


前言

從本章開始將從0開始講解C語言

默認讀者已經安裝并且會使用C語言的相關編譯器,所以C語言編譯器的安裝和使用就不再進行介紹,有不懂的小伙伴可以去:C語言編譯器-完全攻略 查看相關內容

略去C語言的發展史等相關內容,有興趣的小伙伴可以自行查找觀看

注意:VS中想用scanf、printf等函數需要在最前面加上一個:

??????#define _CRT_SECURE_NO_WARNINGS?

內容介紹

本章內容主要是C語言的基礎內容:學會寫一個簡單的C程序、認識C語言中的數據類型、C語言常見關鍵字介紹、C語言運算符等等。

一個簡單的C程序 第一個C程序 - 經典的“hello world”

那么接下來就從第一個C程序入手,開始我們的C語言之路

#include//1
int main()                   //2
{                            //3
	printf("hello world");   //4
    return 0;                //5
}                            //6

這段代碼共有6行,是一段經典的入門代碼,下面我們就來分析這一段代碼:

第1行是一條預編譯指令,意思是包含stdio.h的頭文件。第2行是main函數的入口。第3行和第6行的兩個大括號包裹的3、4行就是main函數的函數體。其中第4行的 printf("hello world"); 的作用是輸出 hello world 這一串字符,第5行是函數的返回值,第4行和第5行最后的 ; (分號)表示這條語句結束。

可能這樣分析對于剛入坑的小伙伴來說還是云里霧里的,但其實不用糾結那么多,初學時只需要記住這個框架即可,不必深究。至于預編譯指令、頭文件、函數、返回值等這些內容后面一定還會再詳細地去講,所以不用在這里糾結。

這段代碼的運行結果如下圖:(VS中可能會報錯,在最前面加一個 #define _CRT_SECURE_NO_WARNINGS )

printf的使用

接下來我們看這樣一個C程序代碼

#include		//1
int main()						//2
{								//3
	int num = 88;				//4
	printf("num=%d\n",num);		//5
	return 0;					//6
}								//7

它的輸出結果如下:

下面我們就來分析一下這段代碼:我們只看第4行和第5行,其余的目前先記住模板即可。

int num = 88;? 很好理解,就是num變量的值為88,即num是變量名,值為88。至于int是什么,下面就會講到。

而printf則是這里重點要講解的。printf是C語言的輸出函數,大體使用規則為:

printf("<格式化字符串>",<參量表>)? ? ? ? ? 輸出雙引號里的內容,其中參量表根據實際情況選擇寫或者不寫。

分析:printf("num=%d\n",num); "num=%d\n" 就是格式化字符;num就是參量表中的內容

其中雙引號內的%d是格式控制字符,也叫占位符,%是引導符,d表示十進制整數的形式。打印時并不是打印 “%d” ,而是表示打印的num。%d就相當于給num占一個位置,輸出時num再過來將%d替換掉,隨即輸出num的值。而\n是轉義字符,表示換行的意思,下面還會認識更多的轉義字符。格式化字符串中除了格式控制字符和轉義字符,其它的內容原樣不變的輸出到屏幕上。


看到這里相信很多小伙伴已經對printf的使用有了一定的了解。介于C語言輸出輸出函數繁多,就不在這里下太多筆墨了,有興趣的話可以看這篇:C語言中常見的幾個輸入輸出函數

數據類型

認識了一個簡單的C語言代碼是由哪些部分構成的、如何寫一個簡單的C語言代碼之后,那么接下來我們就要學習C語言的一些基礎的理論知識。正所謂基礎不牢地動山搖,學好理論基礎才能更好地實踐。首先我們就來學習C語言種的數據類型

C語言中的數據類型 字符型

類型

字節數

取值范圍

char

1字節

-128到127(-2^7—2^7-1?)

unsigned char

1字節

0到255(0—2^8-1)

整型

類型

字節數

取值范圍

int

4字節

-2,147,483,648 到 2,147,483,647

(-2^31—2^31-1)

unsigned int

4字節

0 到 4,294,967,295

(0—2^32-1)

short

2字節

-32,768 到 32,767

(-2^15—2^15-1)

unsigned short

2字節

0 到 65,535

(0—2^16-1)

long

4字節

-2,147,483,648?到?2,147,483,647

(-2^31—2^31-1)

unsigned long

4字節/8字節

0?到?4,294,967,295

(0—2^32-1)

long long或__int64

8字節

-9,223,372,036,854,775,808到?9,223,372,036,854,775,807

(-2^63—2^63-1)

unsigned long long或unsigned __int64

8字節

0?到?18,446,744,073,709,551,615

(0—2^64-1)

浮點型

C語言中,輸出double型以及float型時,默認輸出6位小數(不足六位以0補齊,超過六位按四舍五入截斷)

類型

字節數

取值范圍

有效數字

精度

float

4 字節

0 和1.2E-38 到 3.4E+38

6

6 位小數

double

8 字節

0 和2.3E-308 到 1.7E+308

15

15 位小數

long double

16 字節

0 和3.4E-4932 到 1.1E+4932

19

19 位小數

補充?

? (1)long?int和short?int就等于long?和short?但一般省略不寫

? (2)signed - 有符號的,即有正副;unsigned - 無符號的,即只有正沒有

? (3)?一個bit(比特位)存放一個二進制位。一個byte(字節)=8個bit 。所以一個字節所占大小為2的八次方(1kb=1024byte)

(4)C語言中常見的3種進制:十進制??1234? 正常開頭;八進制??01234? 以0開頭;十六進制??0123456789abcdef??以0x開頭

? (5)相同的數據類型在不同編譯環境下的范圍不同,因此以上的范圍只供參考不同數據類型在不同環境下所占的字節數大致參考圖如下:

常量和變量

變量和常量能夠幫助理解數據類型。其實變量和常量并不難理解,中學階段的數學中就已經接觸到這兩個名詞了,這里還要啰嗦一下是因為C語言中的常量與變量和數學上的還是不完全相同的

常量

定義:值不能改變的量稱為常量

常量的分類:

整型常量:100,125,-100,0

實型常量:3.14,0.125f,-3.789

字符型常量:'a', 'b', '2'

字符串常量:"a","ab","1232"

注意事項:

? (1)字符型常量用單引號,字符串型常量用雙引號。比如 'a' 為字符常量,"a" 為字符串常量。每個字符串的結尾,編譯器會自動的添加一個結束標志位 \0 即“a”包含兩個字符 ‘a’ 和 ‘\0’ 。其中 '\0' 表示的是ASCII值為0,至于為什么,接下來就會講到。

? (2)浮點型常量默認是double類型的,以f結尾的浮點型常量才是float類型的。例如

float num1 = 3.14;
float num2 = 3.14f;

中num1的3.14是double型,num2的3.14是float型的

變量

定義:值可以改變的量被稱為變量

定義變量的方式:

1.存儲類型 數據類型 變量名;

2.存儲類型 數據類型 變量名=變量或者常量;

變量名屬于標識符,標識符(變量名、函數名、重命名和取別名)有命名規則:

1.只能以數字、字母和下劃線命名?

2.首字母不能是數字

3.不能與關鍵字相同

格式控制字符 格式控制字符一覽表

格式

代表的字符

%d

int

%c

字符-a b c

%s

字符串-apple

注意:%s會自動根據所指定的地址去向后依次尋值,遇到\0結束

%hd

short

%ld

long

%lld

long long

%u

unsigned int

%f

float

%lf

double

%.100f

用來輸出實數,保留小數點100位。

%g(%G)

根據數值大小自動選f格式或e格式,且不輸出無意義的零

%o(%#o)

八進制整型 0(零) 開頭(不加#沒有前導符—0)

%x(%#x)

十六進制整型 0x或0X開頭(不加#沒有前導符—0x)

%e(%E)

指數形式的浮點數

%p(%#p)

地址的輸出、指針的值(不加#沒有前導符—0x)

%%

輸出 %

%[^\n]

scanf中可以輸入除了回車(\n)以外的所有字符

%[XX]

只讀入XX內容,此時鍵盤輸入的只能是XX內容

%[^X]

scanf中可以輸入除了X以外的所有字符,讀取到X時停止

(^表示取反的意思)

格式控制字符的特殊用法
  1. %nd 要求寬度為n位,如果不足n位,右對齊,前面補空格:如果足夠n位,此語句無效(n為正整數,下同)
  2. %03d 要求寬度為3位,如果不足3位,前面0補齊:如果足夠3位,此語句無效
  3. %-3d 要求寬度為3位,如果不足3位,后面空格補齊,默認左對齊:如果足夠3位,此語句無效
  4. 注意: 沒有%-0nd!
  5. %.nf 四舍五入后小數點后只保留n位
  6. %m.nf 控制總長度為m并右對齊,精度為n
  7. %-m.nf? 控制總長度為m并左對齊,精度為n
  8. %.ne 保留小數點后n位小數的科學計數法
  9. %3s 限制每次讀入字符串的內容大小(即每次讀入3個字符),如果不做限制,可能會導致溢出
  10. %*d 表示忽略第一個整數
特殊用法總結

以下為引用內容

標志字符為-、+、#和空格四種,其意義下表所示:
- :右邊填空格
+ :輸出符號(正號或負號)
空格 :輸出值為正時冠以空格,為負時冠以負號
# :對c、s、d、u類無影響;對o類,在輸出時加前綴o;對x類,在輸出時加前綴0x;對e、g、f類當結果有小數時才給出小數點

轉義字符

常見的一些轉義字符:

  • 注意事項:
  1. 單引號和雙引號等特殊字符需要用轉義字符輸出,例如?""" 會報錯,因為前兩個括號會配對,應該"\""這樣寫
  2. \t是轉移字符,水平制表,跳到下一個tab的位置不足八位以空格補齊,但是有些數據已經有八位了,所以\t會再補8個空格,導致錯位

類型轉換

C語言數據有不同的類型,不同類型數據之間進行混合運算時必然涉及到類型的轉換問題轉換的方法有兩種:自動類型轉換和強制類型轉換。自動轉換是編譯器自動操作完成的,強制轉換是人工手動操作完成的


自動轉換

自動遵循一定的規則,由編譯系統自動完成

自動轉換的原則:

1、占用內存字節數少(值域小)的類型,向占用內存字節數多(值域大)的類型轉換,以保證精度不降低

2、轉換方向圖示:

  • 詳解如下:

1)當表達式中出現了char、short、int類型中的一種或者多種,沒有其他類型了。參加運算的成員全部變成int類型的參加運算,結果也是int類型的,例如:

printf("%d\n",9/2);

輸出結果為:4

2)當表達式中出現了帶小數點的實數,參加運算的成員全部變成double類型的參加運算,結果也是double型。例如:

printf("%lf",5.0/2);

輸出結果為: 2.500000?

3)表達式中無實數的前提下。當表達式中有signed型也有unsigned型,參加運算的變量都變成無符號數參加運算,結果也是無符號數。例如:由于用到了if語句,可能有點小伙伴看不懂,所以先提前解釋一下這段代碼:如果a+b>0 就執行第一個printf,否則就執行第二個printf。

int a=-5;
unsigned int b=3;
if(a+b>0)
    printf("a+b>0\n");    //如果a+b>0 就執行這句
else
    printf("a+b<0\n");    //否則就執行這句

輸出結果為: a+b>0? ? ? ??

結果分析:表面上看a+b是小于0的,但由于b是unsigned型的變量,a的值和b在運算時自動轉為unsigned型,所以結果為正數。但是注意:a的本質還是-5,只是在 a+b 運算時自動轉換為unsigned型,運算過后a仍是-5

4)在賦值語句中等號右邊的類型自動轉換為等號左邊的類型

5)注意自動類型轉喚都是在運算的過程中進行臨時性的轉換,并不會影響自動類型轉換的變量的值和其類型。例如:

int a; 
float b=6.68f;    //6.68后面加f代表6.68是float類型。不加則是double類型
a=b;
printf("a=%d\n",a);?????//輸出結果:6.68
printf("b=%g\n",b);???? //輸出結果:6????

強制轉換

強制轉換通過類型轉換運算來實現把表達式的運算結果強制轉換成類型說明符所表示的類型

兩種寫法如下:

(類型說明符)變量

(類型說明符)(表達式)

注意事項:

是將變量或表達式結果的類型轉換,而不是左值變量的類型被轉換

類型說明符必須加括號,表達式必須加括號,變量可以不用加括號

代碼案例:

//強制轉換 
int p=12; 
int q=8; 
double o; 
double x; 
double Y; 
o=(double)p/q;            //先將p強制轉化為double型,然后輸出結果自動轉化為double型 
x=(double)p/(double)q;    //分別將p和q轉化為double型 
Y=(double)(p/q);          //將p/q的結果轉化為double型 
printf("%G\n",o);    //輸出結果:1.5 
printf("%G\n",x);    //輸出結果:1.5 
printf("%G\n",Y);    //輸出結果:1
ASCII表

為了方便大家的日常學習需要,這里附上兩種ASCII表

C語言關鍵字

C語言的關鍵字共有32個,根據關鍵字的作用,可分其為數據類型關鍵字、控制語句關鍵字、存儲類型關鍵字和其它關鍵字四類。

1 - 數據類型關鍵字(12個):

(1) char (2) double (3) enum (4) float?(5) int?(6) long (7) short?(8) signed (9) struct?(10) union (11) unsigned (12) void

2 - 控制語句關鍵字(12個):
(1) for (2) do (3) while (4) break (5) continue (6)if (7)else?(8)goto?(9)switch? (10)case (11)default?(12)return?

3 - 存儲類型關鍵字(4個):

(1)auto?(2)extern??(3)register?(4)static?

4 - 其它關鍵字(4個):

(1)const? (2)sizeof?(3)typedef?(4)volatile?


可以看到上面講到的數據類型中float、char、unsigned int等也是C語言常用的關鍵字。這么多關鍵字令人眼花繚亂。這里我們只是地挑選幾個作為講解

register

register是寄存器的意思,用register修飾的變量是寄存器變量

即:在編譯的時候告訴編譯器這個變量是寄在器變量,盡量將其存儲空間分配在寄存器中,能讓運行速率更快

注意:

(1):定義的變量不一定真的存放在寄存器中(會有寄存器空間不夠的情況)

(2):不用register修飾一般情況下變量是在內存中運行的,cpu在取數據時去寄存器中取數據比去內存中拿數據要快

(3):因為寄存器比較寶貴,所以不能定義寄存器數組

(4):register只能修飾字符型及整型的,不能修飾浮點型

register char ch;//正確 register short int b;//正確 register int c;//正確 register float d;//錯誤

(5):因為register修飾的變量可能存放在寄存器中不存放在內存中,所以

不能對寄存器變量取地址。因為只有存放在內存中的數據才有地址

register int a; int *p; p=&a//錯誤,a可能沒有地址

(&在C語言中有兩種意思,一種是取地址符,是單目運算符;另一種是位運算符,表示“按位與”,是雙目運算符)

static

static是靜態的意思,可以修飾全局變量、局部變量、函數

static的作用:

  1. 使用static修飾的變量保存在內存的靜態全局區中
  2. 將變量限制為內部鏈接屬性。例如static修飾局部變量會將局部變量從外部鏈接屬性轉為內部鏈接屬性
const

const表示只讀

const可定義常量, 也可以用來修飾函數的參數和返回值。

用const修飾的變量是只讀的,不能修改它的值,例如:

const int as=101; //在定義a的時候用const修飾,并賦初值為101,從此以后,就不能再給a賦值了 
a=111;//錯誤
auto

auto?int?a和inta是等價的,auto關鍵字現在基本不用。

相關介紹如下:

auto的早期作用

在早期C/C++中auto的含義是:使用auto修飾的變量,是具有自動存儲器的局部變量,所謂自動存儲就是函數結束(出了作用域),這個變量自動銷毀。這樣的作用沒有意義,因為現在的變量也是出了作用域就自動銷毀。auto的這個用法就被消除了

extern

要點概括:

  1. extern是外部的意思,表示聲明一個變量。即聲明該變量是一個外部變量,也就是全局變量,所以 extern 修飾的變量保存在靜態存儲區(全局區)
  2. 同一個工程引用不同文件的變量或函數需要用extern聲明,但前提得是全局變量而非局部變量(局部變量作用域只在大括號內,全局變量作用域是整個工程的)
  3. extern修飾局部變量時,不是定義局部變量,而是用在函數內部是聲明一個全局變量

用法示例:

sizeof

用來測變量、數組的占用存儲空間的大小(字節數)

用法示例:

int a=10;

int num;

num sizeof(a);

printf("num %d",num);
typedef

typedef重命名相關的關鍵字

作用是給一個已有的類型,重新起個類型名,并沒有創造一個新的類型

用法:typedef 原類型名 新類型名;

常見用法:

typedef short int INT16;

// lNT16 b和short int b 是一個效果

拓展用法:

typedef int p(int , int);

//將p定義為int __(int ,int)類型的函數,定義 "p?i;" == "int i(int, int);"

?typedef兩大陷阱陷阱

陷阱一:

記住,typedef是定義了一種類型的新別名,不同于宏,它不是簡單的字符串替換。

比如:先定義:typedef char PSTR;然后:int mystrcmp(const PSTR, const PSTR);

const PSTR實際上相當于const char嗎?不是的,它實際上相當于char const。原因在于const給予了整個指針本身以常量性,也就是形成了常量指針char* const。簡單來說,記住當const和typedef一起出現時,typedef不會是簡單的字符串替換就行。

陷阱二:

typedef在語法上是一個存儲類的關鍵字(如auto、extern、mutable、static、register等一樣),雖然它并不真正影響對象的存儲特性,如:

typedef static int INT2; //不可行

編譯將失敗,會提示“指定了一個以上的存儲類”。

volatile

volatile易改變的意思

用volatile定義的變量是易改變的,即告訴cpu每次用volatile變量的時候,重新去內存中取

保證用的是最新的值,而不是寄存器中的備份。

volatile關鍵字現在較少使用

C語言運算符 算數運算符

+??-??*??/???%(取余,只有整數才能區域。浮點型數據不能取余)

%%(輸出%)

+=???-=???*=???/=

(a+=3相當于a=a+3)

關系運算符

>=?<=? !=? == (注意:兩個 = 為判斷是否等于,一個 = 為賦值)

  • 注意事項:

? (1)條件運算符的結果為0或1

int a=10>5;

int b=10<5;

printf("a %d,b %d\n",a,b);//輸出結果: a=1,b=0(1為真,0為假)

//關系運算符連接的表達式的最終結果只有兩個,真(非0)和假(0)

?(2)關系運算符一般用于判斷條件是否滿足

邏輯運算符??
  • 注意:為了提高編程效率,當邏輯與的第一個條件為假或者邏輯或的第一個條件為真時,其第二個條件或者語句直接不執行
  • 邏輯運算符的結果為0或1

&&-邏輯與

兩個條件都為真,則結果為真

if(bb)&&(ab用不用括號括起來都對 //表達式必須加括號,判斷語句可以不用加


‖-邏輯或

兩個條件至少有一個為真,則結果為真

條件表達式中的 , (逗號)近似等于邏輯或


!-邏輯-非

邏輯非是單目運算符,表示取反


邏輯與邏輯或的短路原則

邏輯與?的短路原則:如果前面表達式的結果為假,則整體表達式為假,則后面所有的表達式都不會執行(因為要按順序編譯)

邏輯或?的短路原則:如果第一個表達式的結果為真,則整體表達式為真,所有后面所有的都不會執行

位運算符

相對于位進行操作,即數值都要轉化為二進制數再進行操作


&??按位與

任何值與0得0,與1保持不變

0101?1011??

1011?0100

&

0001?0000


|??按位或

任何值或1得1,或0保持不變

0101?0011

1011?0100

|

1111?0111


~??按位取反

1變0,0變1

0101?1101

~

1010?0010


^??按位異或

相異得1,相同得0

1001?1100

0101?1010

^

1100?0110


位移運算符

>>右移? ? ?<<左移

右移:分邏輯右移和算數右移(不同計算機右移方式不同)

左移:高價溢出低位補0

邏輯右移:高位補0,低位溢出

1000 1111 //-15(二進制首位是0為正,是1為負) >>3 0001 0001 //17

算數右移:高位補符號位(正數補0負數補1)低位溢出

1000 1111 //-15 >>3 1111 0001 //-113

條件運算符

A?B:C:??也可以表示為??()?():()?有沒有括號都對,但一般都寫括號

作用:首先判斷表達式A的結果,如果為真,則執行表達式B;如果為假,則執丸行表達式C

其實條件運算符就是一個簡單的lif?else語句,即:

if(A) {B;} else {C;}

逗號運算符

(…,…,…)???????注意:必須有括號!

使用逗號隔開的表達式從左向右依次執行,最后的表達式的值是整個運算的結果

例如:A=(B,C,D)

先運行表達式B,再運行表達式C,最后運行表達式D,最終變量A的值為表達式D的值

int a=10,b=20;

int c;

c=(a+=10,b+=10,a+=b);

printf("a =%d,b=%d,c=%d\n",a,b,c);    //輸出結果為:50 30 50
自增自減運算符

++????--

1、將++或者--放在變量的后面時,先使用,后自增或自減

int m=520;

int n;

n=m++;

printf("%d\t%d\n",n,m);
//輸出結果: 520 521

2、將++或者--放在變量的前面時,先自增或自減,再使用

int p=182;

int q;

q=++p;

printf("%d\t%d\n",p,q);

//輸出結果: 183 183
C語言運算符優先級

在c語言的表達式中,如果存在多個運算符的時候,需要考慮數據的優先級和結合方向的問題。

所以在這里附上C語言運算符優先級的圖,以供查閱

易錯警示

VS想用printf等函數需要在最前面加上一個?#define _CRT_SECURE_NO_WARNINGS?

printf參數表中的逗號(,)不要忘記

float和double對應的%f、%lf不能混用

輸出時不管是%f還是%lf都是默認小數點后6位,但可以用%.nf控制輸出位數

注意:a+b和a+=b的效果不同

int a=10,b=20;

int c;

c=(a+=10,b+=10,a+b);

printf("a =%d,b=%d,c=%d\n",a,b,c);//輸出結果為:20 30 50

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧


網頁名稱:第1章-C語言基礎<超詳細>-創新互聯
URL標題:http://www.xueling.net.cn/article/dpiihs.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 日本熟妇五十路重生七零甜婚似火 | 日本一二三区在线视频 | 亚洲Av无码一区二区三区在线观看 | 99这里精品 | 男人脱了美女内衣摸她胸视频 | 成人区一区二区三区 | 国产一级毛片国语普通话对白 | 国产亚洲精品久久飘花 | 特黄一级免费视频 | 69热视频| 护士被强女千到高潮视频 | 年轻的秘书4在线观看 | 欧美三级不卡在线播放 | 7777奇米亚洲综合久久 | 中文亚洲成A人片在线观看 91精品视频网站 | 999av视频 | 久久久久久伊人 | 人妻无码中文专区久久五月婷 | 丰满少妇人妻HD高清大乳 | 国产在线一区二区三区激情欧美 | 好男人社区神马WWW在线观看 | 精品视频在线免费看 | 日本黄色片免费在线观看 | 精品久久久久久久久久久国产字幕 | 国产999精品久久久久久绿帽 | 少妇性按摩无码中文a片 | 最新国产精品亚洲 | 天堂网www资源在线 欧美日韩国产一区视频在线观看 | 熟妇人妻午夜寂寞影院 | 无码国产69精品久久久孕妇 | 宅男在线免费视频 | 手机看片久久国产免费 | 伊人蕉久中文字幕无码专区 | 校花高潮抽搐冒白浆视频 | 日韩毛片在线看 | 成人免费在线视频网站 | 手机看片日韩 | 亚洲另类在线视频 | 乱人伦人妻精品一区二区 | 国产农村乱辈无码 | 亚洲爆乳精品无码一区二区 |