日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

第 2 章

發(fā)布時(shí)間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第 2 章 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2.1

int、long、long long 和 short 表示整型類型,C++語(yǔ)言規(guī)定它們表示數(shù)的范圍 short \(\leq\) int \(\leq\) long \(\leq\) long long。其中,數(shù)據(jù)類型 long long 是在 C++11 中新定義的;

除去布爾型和擴(kuò)展的字符型之外,其它整型可以劃分為帶符號(hào)的(signed)無(wú)符號(hào)的(unsigned)兩種。帶符號(hào)類型可以表示正數(shù)、負(fù)數(shù)和 0,無(wú)符號(hào)類型則僅能表示大于等于 0 的值。類型 int、short、long 和 long long 都是帶符號(hào)的,通過(guò)在這些類型名前添加 unsigned 就可以得到無(wú)符號(hào)類型,例如 unsigned long。類型 unsigned int 可以縮寫(xiě)為 unsigned;

float 和 double 用于表示浮點(diǎn)數(shù),其中,float 表示單精度浮點(diǎn)數(shù),double 表示雙精度浮點(diǎn)數(shù)。執(zhí)行浮點(diǎn)數(shù)運(yùn)算選用 double,這是因?yàn)?float 通常精度不夠而且雙精度浮點(diǎn)數(shù)和單精度浮點(diǎn)數(shù)的計(jì)算代價(jià)相差無(wú)幾。事實(shí)上,對(duì)于某些機(jī)器來(lái)說(shuō),雙精度運(yùn)算甚至比單精度還快。long double 提供的精度在一般情況下是沒(méi)有必要的,況且它帶來(lái)的運(yùn)算時(shí)消耗也不容忽視。

附:單精度與雙精度是什么意思,有什么區(qū)別?

2.2

利率(rat):float,本金(principal):long long,付款(payment):long long。

利率一般是小數(shù)點(diǎn)后保留四位有效數(shù)字,float 合適;本金和付款使用最大的帶符號(hào)整型表示。

2.3

main.cpp

#include <iostream>int main() {std::cout << sizeof(unsigned) << std::endl;std::cout << sizeof(int) << std::endl;std::cout << "**************************" << std::endl;unsigned u = 10, u2 = 42;std::cout << u2 - u << std::endl;std::cout << u - u2 << std::endl;std::cout << "**************************" << std::endl;int i = 10, i2 = 42;std::cout << i2 - i << std::endl;std::cout << i - i2 << std::endl;std::cout << i - u << std::endl;std::cout << u - i << std::endl;return 0; } 4 4 ************************** 32 4294967264 ************************** 32 -32 0 0Process finished with exit code 0 unsigned int 占 4 字節(jié) int 占 4 字節(jié) ************************** u2 - u = 42 - 10 = 32 u - u2 = 10 - 42 = unsigned(-32) = 4294967264 分析一: 32 的二進(jìn)制表示為 0000 0000 0000 0000 0000 0000 0010 0000 -32 的二進(jìn)制補(bǔ)碼表示為 1111 1111 1111 1111 1111 1111 1110 0000 也就是說(shuō) -32 的十六進(jìn)制表示為 FFFF FFE0 若將 FFFF FFE0 轉(zhuǎn)換為 unsigned int 類型,則高位的符號(hào)位全部成為了數(shù)值位,FFFF FFE0 按無(wú)符號(hào)數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)為 4294967264。 分析二: 把負(fù)數(shù)轉(zhuǎn)換成無(wú)符號(hào)數(shù)類似于直接給無(wú)符號(hào)數(shù)賦一個(gè)負(fù)值,結(jié)果等于這個(gè)負(fù)數(shù)加上無(wú)符號(hào)數(shù)的模。 unsigned int 占 4 字節(jié),4 字節(jié)的無(wú)符號(hào)數(shù)模為 4294967296。 -32 + 4294967296 = 4294967264 ************************** i2 - i = 42 - 10 = 32 i - i2 = 10 - 42 = -32 當(dāng)一個(gè)算術(shù)表達(dá)式中既有無(wú)符號(hào)數(shù)又有 int 值時(shí),那個(gè) int 值就會(huì)轉(zhuǎn)換成無(wú)符號(hào)數(shù)。 i - u = unsigned(10) - 10 = 0 u - i = 10 - unsigned(10) = 0 分析: 有符號(hào)數(shù) 10 轉(zhuǎn)換成無(wú)符號(hào)數(shù) 10,因?yàn)?10 是正數(shù),符號(hào)位為 0,故轉(zhuǎn)換成無(wú)符號(hào)數(shù)時(shí),符號(hào)位不會(huì)對(duì)對(duì)應(yīng)無(wú)符號(hào)數(shù)產(chǎn)生副作用。Process finished with exit code 0 程序中 return 0 語(yǔ)句的副作用

2.4

請(qǐng)看 2.3

2.5

(a) 'a', L'a', "a", L"a"

字面值數(shù)據(jù)類型
'a'字符字面值,類型是 char
L'a'寬字符字面值,類型是 wchar_t
"a"字符串字面值
L"a"寬字符串字面值

(b) 10, 10u, 10L, 10uL, 012, 0xC

字面值數(shù)據(jù)類型
10整型字面值,類型是 int
10u無(wú)符號(hào)整型字面值,類型是 unsigned int
10L整型字面值,類型是 long
10uL無(wú)符號(hào)整型字面值,類型是 unsigned long
012八進(jìn)制整型字面值,類型是 int
0xC十六進(jìn)制整型字面值,類型是 int

(c) 3.14, 3.14f, 3.14L

字面值數(shù)據(jù)類型
3.14浮點(diǎn)數(shù)字面值,類型是 double
3.14f浮點(diǎn)數(shù)字面值,類型是 float
3.14L浮點(diǎn)數(shù)字面值,類型是 long double

(d) 10, 10u, 10., 10e-2

字面值數(shù)據(jù)類型
10整型字面值,類型是 int
10u無(wú)符號(hào)整型字面值,類型是 unsigned int
10.浮點(diǎn)數(shù)字面值,類型是 double
10e-2浮點(diǎn)數(shù)字面值,類型是 double

2.6

有區(qū)別

int month = 9, day = 7; // 9 和 7 是十進(jìn)制數(shù),正確的賦值 // 以 0 開(kāi)始表示八進(jìn)制,八進(jìn)制各位范圍是 0 ~ 7,賦值不合法 int month = 09, day = 07;

2.7

字面值數(shù)據(jù)類型
"Who goes with F\145rgus?\012"字符串字面值,包含兩個(gè)八進(jìn)制轉(zhuǎn)義序列
3.14e1L浮點(diǎn)數(shù)字面值,類型是 long double
1024f浮點(diǎn)數(shù)字面值,類型是 float
3.14L浮點(diǎn)數(shù)字面值,類型是 long double

2.8

分別寫(xiě)了八進(jìn)制和十六進(jìn)制的版本

ASCII

#include <iostream>int main() {std::cout << "-------- Oct --------" << std::endl;std::cout << "\62\115\12";std::cout << "---------------------" << std::endl;std::cout << "\62";std::cout << "\11";std::cout << "\115";std::cout << "\12";std::cout << "-------- Hx ---------" << std::endl;std::cout << "\x32\x4d\xa";std::cout << "---------------------" << std::endl;std::cout << "\x32";std::cout << "\x9";std::cout << "\x4d";std::cout << "\xa";return 0; } // 運(yùn)行結(jié)果 -------- Oct -------- 2M --------------------- 2 M -------- Hx --------- 2M --------------------- 2 MProcess finished with exit code 0

2.9

// (a) // std::cin >> int input_value; // Error: variable must be defined before using for input int input_value; std::cin >> input_value;// (b) // int i = { 3.14 }; // Error: loss information in list initialization double d = { 3.14 }; // OK double d2 = { 3 }; // OK// (c) // double salary = wage = 9999.99; // Error double salary, wage; salary = wage = 9999.99;// (d) int i2 = 3.14; // OK, `i2` is 3

2.10

#include <iostream>std::string global_str; int global_int; int main () {int local_int;std::string local_str;std::cout << "global_str = " << global_str << std::endl;std::cout << "global_int = " << global_int << std::endl;std::cout << "local_str = " << local_str << std::endl;std::cout << "local_int = " << local_int << std::endl;return 0; } // 運(yùn)行結(jié)果 global_str = global_int = 0 local_str = local_int = -406316616Process finished with exit code 0

2.11

extern int ix = 1024; // 定義 int iy; // 聲明并定義 iy extern int iz; // 聲明 iz 而非定義 iz

2.12

int double = 3.14; // 錯(cuò)誤,c++關(guān)鍵字 double 不能作為標(biāo)識(shí)符 int _; // 正確 int catch-22; // 錯(cuò)誤,標(biāo)識(shí)符由數(shù)字、字母和下劃線組成 int 1_or_2 = 1; // 錯(cuò)誤,標(biāo)識(shí)符必須以字母或下劃線開(kāi)頭 double Double = 3.14; // 正確,標(biāo)識(shí)符長(zhǎng)度沒(méi)有限制,大小寫(xiě)敏感

2.13

程序中 j 的值是 100

2.14

#include <iostream>int main () {int i = 100, sum = 0;for (int i = 0; i != 10; ++i)sum += i;std::cout << i << " " << sum << std::endl;return 0; } // 運(yùn)行結(jié)果 100 45Process finished with exit code 0

2.15

#include <iostream>int main () {// 正確,隱式的將 1.01 轉(zhuǎn)換成 1int ival= 1.01;// 錯(cuò)誤,除 2.4.1 節(jié)(第 55 頁(yè))和 15.2.3 節(jié)(第 534 頁(yè))將// 要介紹的兩種例外情況,引用的類型都要和與之綁定的對(duì)象嚴(yán)格匹// 配。而且,引用只能綁定在對(duì)象上,而不能與字面值或某個(gè)表達(dá)式的// 計(jì)算結(jié)果綁定在一起,相關(guān)原因?qū)⒃?2.4.1 節(jié)詳述int &rval1 = 1.01;// 正確int &rval2 = ival;// 錯(cuò)誤,引用必須被初始化,且初始值必須是一個(gè)對(duì)象int &rval3;return 0; }

2.16

#include <iostream>int main () {int i = 0, &r1 = i;double d = 0, &r2 = d;// 正確r2 = 3.14159;std::cout << r2 << "\n";// 正確,發(fā)送自動(dòng)類型轉(zhuǎn)換r2 = r1;std::cout << r2 << '\n';// 正確,發(fā)送自動(dòng)類型轉(zhuǎn)換i = r2;std::cout << i << std::endl;// 正確,發(fā)送自動(dòng)類型轉(zhuǎn)換r1 = d;std::cout << r1 << std::endl;return 0; }

2.17

#include <iostream>int main () {int i, &ri = i;i = 5;ri = 10;std::cout << i << " " << ri << std::endl;return 0; } // 運(yùn)行結(jié)果 10 10Process finished with exit code 0

2.18

#include <iostream>int main () {int ival = 23, *ip = &ival;std::cout << "ival = " << ival << " " << "*ip = " << *ip << std::endl;*ip = 24;std::cout << "ival = " << ival << " " << "*ip = " << *ip << std::endl;ival = 25;std::cout << "ival = " << ival << " " << "*ip = " << *ip << std::endl;return 0; } // 運(yùn)行結(jié)果 ival = 23 *ip = 23 ival = 24 *ip = 24 ival = 25 *ip = 25Process finished with exit code 0

2.19

引用

引用(reference)為對(duì)象起了另外一個(gè)名字,引用類型引用(refers to)另外一種類型。

int ival = 1024; int &refVal = ival; // refVal 指向 ival(是 ival 的另一個(gè)名字) int &refVal2; // 報(bào)錯(cuò):引用必須被初始化 int &refVal4 = 10; // 錯(cuò)誤:引用類型的初始值必須是一個(gè)對(duì)象 // 除特殊情況,其他所有引用的類型都要和與之綁定的對(duì)象嚴(yán)格匹配 double dval = 3.14; int &refVal5 = dval; // 錯(cuò)誤:此處引用類型的初始值必須是 int 型對(duì)象

指針

指針(pointer)是"指向(point to)"另外一種類型的復(fù)合類型。與引用類似,指針也實(shí)現(xiàn)了對(duì)其他對(duì)象的間接訪問(wèn)。然而指針與引用相比又有很多不同點(diǎn)。

  • 指針本身就是一個(gè)對(duì)象,允許對(duì)指針賦值和拷貝,而且在指針的生命周期內(nèi)它可以先后指向幾個(gè)不同的對(duì)象;

  • 指針無(wú)須在定義時(shí)賦初值;

  • 因?yàn)橐貌皇菍?duì)象,沒(méi)有實(shí)際地址,所以不能定義指向引用的指針;

  • 除特殊情況,其他所有指針的類型都要和它所指向的對(duì)象嚴(yán)格匹配;

  • 空指針的定義方法:

    int *p1 = nullptr; // C++11 新標(biāo)準(zhǔn)引人的方法,推薦使用 int *p2 = 0; // 直接將 p2 初始化為字面值常量 0 // 需要首先 #include cstdlib int *p3 = NULL;

    三種定義空指針的方法等價(jià),推薦使用第一種。

  • 雖然指針無(wú)須在定義時(shí)賦初值,但是記得初始化所有指針。如果實(shí)在不清楚指針應(yīng)該指向何處,就把它初始化為 nullptr 或者 0,這樣程序就能檢測(cè)并知道它沒(méi)有指向任何具體的對(duì)象了。使用未經(jīng)初始化的指針是引發(fā)運(yùn)行時(shí)錯(cuò)誤的一大原因。

2.20

\(i\) 的值修改為 \(i^2\)

#include <iostream>int main () {int i = 42;int *p1 = &i;*p1 = *p1 * *p1;std::cout << "i = " << i << " " << "*p1 = " << *p1;return 0; } // 運(yùn)行結(jié)果 i = 1764 *p1 = 1764 Process finished with exit code 0

2.21

int i = 0; double *dp = &i; // 錯(cuò)誤,指針的類型都要和它所指向的對(duì)象嚴(yán)格匹配 int *ip = i; // 錯(cuò)誤,忘記取地址符 & int *p = &i; // 正確

2.22

if (p) means if the pointer p is not null.

if (*p) means if the object pointed by the pointer is not false (which means the object is not null or zero etc.).

#include <iostream>int main () {int i = 42;int *p = &i;std::cout << "p = " << p << " " << "*p = " << *p << std::endl;if (p)std::cout << "true" << std::endl;elsestd::cout << "false" << std::endl;if (*p)std::cout << "true" << std::endl;elsestd::cout << "false" << std::endl;i = 0;p = &i;std::cout << "p = " << p << " " << "*p = " << *p << std::endl;if (p)std::cout << "true" << std::endl;elsestd::cout << "false" << std::endl;if (*p)std::cout << "true" << std::endl;elsestd::cout << "false" << std::endl;return 0; } // 運(yùn)行結(jié)果 p = 0x7ffee92f3818 *p = 42 true true p = 0x7ffee92f3818 *p = 0 true falseProcess finished with exit code 0

2.23

No, you can't. Because it would be expensive to maintain meta data about what constitutes a valid pointer and what doesn't, and in C++ you don't pay for what you don't want.

See answer here.

However, a smart pointer can be used to tell if it points to a valid object.

注:此題解答來(lái)自

2.24

int main() {int i = 42;void *p = &i; // OK, a `void *` pointer can point to any type//long *lp = &i; // Error, a `long *` pointer can not point to `int *`return 0; }

2.25

#include <iostream>int main() {{int* ip, i, &r = i; // `ip` is `int *`, `i` is `int`, `r` is `int &`std::cout << "(a)" << std::endl;std::cout << "ip\t" << typeid(ip).name() << std::endl;std::cout << "i\t" << typeid(i).name() << std::endl;std::cout << "r\t" << typeid(r).name() << std::endl;// Note that `typeid` will lose the `const` qualifier and reference}{int i, *ip = 0; // `i` is `int`, `ip` is `int *`std::cout << "(b)" << std::endl;std::cout << "i\t" << typeid(i).name() << std::endl;std::cout << "ip\t" << typeid(ip).name() << std::endl;}{int* ip, ip2; // `ip` is `int *`, `ip2` is `int`std::cout << "(c)" << std::endl;std::cout << "ip\t" << typeid(ip).name() << std::endl;std::cout << "ip2\t" << typeid(ip2).name() << std::endl;}return 0; } // 運(yùn)行結(jié)果 (a) ip Pi i i r i (b) i i ip Pi (c) ip Pi ip2 iProcess finished with exit code 0

注:

Understanding the output of typeid().name()

std::type_info::name

2.26

本題所有語(yǔ)句應(yīng)該被看作是順序執(zhí)行的,即形如:

const int buf; int cnt = 0; const int sz = cnt; ++cnt; ++sz;

(a)是非法的,const 對(duì)象一旦創(chuàng)建后其值就不能改變,所以 const 對(duì)象必須初始化。該句應(yīng)修改為 const int buf = 10。

(b)和(c)是合法的。

(d)是非法的,sz 是一個(gè) const 對(duì)象,其值不能被改變,當(dāng)然不能執(zhí)行自增操作。

2.27

(a)是非法的,非常量引用 r 不能引用字面值常量 0。修改方法:

int i = -1, &r = i; // 或 const int i = -1, &r = 0; // 或 const int i = -1, &r = i;

(b)是合法的,p2 是一個(gè)常量指針,p2 的值永不改變,即 p2 永遠(yuǎn)指向變量 i2。

(c)是合法的,i 是一個(gè)常量,r 是一個(gè)常量引用,此時(shí) r 可以綁定到字面值常量 0。

(d)是合法的,p3 是一個(gè)常量指針,p3 的值永不改變,即 p3 永遠(yuǎn)指向變量 i2;同時(shí) p3 指向的是常量,即我們不能通過(guò) p3 改變所指對(duì)象的值。

(e)是合法的,p1 指向一個(gè)常量,即我們不能通過(guò) p1 改變所指對(duì)象的值。

(f)是非法的,引用本身不是對(duì)象,因此不能讓引用恒定不變。

(g)是合法的,i2 是一個(gè)常量,r 是一個(gè)常量引用。

2.28

(a)是非法的,cp 是一個(gè)常量指針,因其值(指針存儲(chǔ)的那個(gè)地址)不能被改變,所以必須被初始化。

(b)是非法的,cp2 是一個(gè)常量指針,因其值不能被改變,所以必須被初始化。

(c)是非法的,ic 是一個(gè)常量,因其值不能被改變,所以必須被初始化。

(d)是非法的,p3 是一個(gè)常量指針,因其值不能被改變,所以必須被初始化;同時(shí) p3 所指向的是常量,即我們不能通過(guò) p3 改變所指對(duì)象的值。

(e)是合法的,但是 p 沒(méi)有指向任何實(shí)際的對(duì)象。

2.29

(a)是合法的,常量 ic 的值賦給了非常量 i。

(b)是非法的,普通指針 p1 指向了一個(gè)常量,從語(yǔ)法上說(shuō),p1 的值可以隨意改變,顯然是不合理的。因?yàn)?p1 改變了,p1 所指對(duì)象因該也同時(shí)改變了,但是 p1 所指對(duì)象是一個(gè)常量,不能被修改。

(c)是非法的,普通指針 p1 指向了一個(gè)常量,錯(cuò)誤情況與上一條類似。

(d)是非法的,p3 是一個(gè)常量指針,不能被賦值。

(e)是非法的,p2 是一個(gè)常量指針,不能被賦值。

(f)是非法的,ic 是一個(gè)常量,不能被賦值。

2.30

頂層 const 表示任意的對(duì)象是常量,而底層 const 與指針和引用等復(fù)合類型的基本類型部分有關(guān)。

解答:v2 和 p3 是頂層 const,分別表示一個(gè)整型常量和一個(gè)整型常量指針;p2 和 r2 是底層 const,分別表示它們所指(所引用)的對(duì)象是常量。

2.31

本題考查頂層 const 和底層 const 對(duì)于拷貝操作的影響。

解答:

在執(zhí)行拷貝操作時(shí),頂層 const 和底層 const 區(qū)別明顯。其中,頂層 const 不受影響,這是因?yàn)榭截惒僮鞑⒉粫?huì)改變被拷貝對(duì)象的值。底層 const 的限制則不容忽視,拷入和拷出的對(duì)象必須具有相同的底層 const 資格,或者兩個(gè)對(duì)象的數(shù)據(jù)類型必須能夠轉(zhuǎn)換。一般說(shuō)來(lái),非常量可以轉(zhuǎn)換成常量,反之則不行。

r1 = v2; 是合法的,r1 是一個(gè)非常量引用,v2 是一個(gè)常量(頂層 const),把 v2 的值拷貝給 r1 不會(huì)對(duì) v2 有任何影響。

p1 = p2; 是非法的,p1 是普通指針,指向的對(duì)象可以是任意值,p2 是指向常量的指針(底層 const),令 p1 指向 p2 所指的內(nèi)容,有可能錯(cuò)誤地通過(guò) p1 改變 p2 所指常量的值。

p2 = p1; 是合法的,與上一條語(yǔ)句相反,p2 可以指向一個(gè)非常量,只不過(guò)我們不會(huì)通過(guò) p2 更改它所指的值。

p1 = p3; 是非法的,p3 包含底層 const 定義(p3 所指的對(duì)象是常量),不能把 p3 的值賦給普通指針。

p2 = p3; 是合法的,p2 和 p3 包含相同的底層 const,p3 的頂層 const 則可以忽略不計(jì)。

2.32

int null = 0, *p = &null; // 或 int null = 0, *p = nullptr;

2.33

【出題思路】

本題旨在考察 auto 說(shuō)明符與復(fù)合類型、常量混合使用時(shí)的各種情形。首先,使用引用其實(shí)是使用引用的對(duì)象,所以當(dāng)引用被用作初始值時(shí),真正參與初始化的其實(shí)是引用對(duì)象的值,編譯器以引用對(duì)象的類型作為 auto 的推斷類型。其次,auto 一般會(huì)忽略掉頂層 const,同時(shí)保留底層 const。

【解答】

前 3 條賦值語(yǔ)句是合法的,原因如下:

r 是 i 的別名,而 i 是一個(gè)整數(shù),所以 a 的類型推斷結(jié)果是一個(gè)整數(shù);ci 是一個(gè)整型常量,在類型推斷時(shí)頂層 const 被忽略掉了,所以 b 是一個(gè)整數(shù);cr 是 ci 的別名,而 ci 是一個(gè)整型常量,所以 c 的類型推斷結(jié)果是一個(gè)整數(shù)。因?yàn)?a、b、c 都是整數(shù),所以為其賦值 42 是合法的。

后 3 條賦值語(yǔ)句是非法的,原因如下:

i 是一個(gè)整數(shù),&i 是 i 的地址,所以 d 的類型推斷結(jié)果是一個(gè)整型指針;ci 是一個(gè)整型常量,&ci 是一個(gè)整型常量的地址,所以 e 的類型推斷結(jié)果是一個(gè)指向整型常量的指針;ci 是一個(gè)整型常量,所以 g 的類型推斷結(jié)果是一個(gè)整型常量引用。因?yàn)?d 和 e 都是指針,所以不能直接用字面值常量為其賦值;g 綁定到了整型常量,所以不能修改它的值。

2.34

【出題思路】

本題旨在考察 auto 說(shuō)明符與復(fù)合類型、常量混合使用時(shí)的各種情形。

【解答】

基于上一個(gè)練習(xí)中的變量和語(yǔ)句編寫(xiě)的程序如下所示:

#include <iostream>using namespace std; int main(int argc, char *argv[]) {int i = 0, &r = i;auto a = r;const int ci = i, &cr = ci;auto b = ci;auto c = cr;auto d = &i;auto e = &ci;const auto f = ci;auto &g = ci;cout << a << " " << b << " " << c << " " << d << " " << e << " " << g << std::endl;a = 42;b = 42;c = 42;// d = 42;// e = 42;// g = 42;cout << a << " " << b << " " << c << " " << d << " " << e << " " << g << std::endl;return 0; } // 運(yùn)行結(jié)果 0 0 0 0x7ffee3e7088c 0x7ffee3e70878 0 42 42 42 0x7ffee3e7088c 0x7ffee3e70878 0Process finished with exit code 0

2.35

【出題思路】

本題旨在考察 auto 說(shuō)明符與復(fù)合類型、常量混合使用時(shí)的各種情形。

【解答】

由題意可知,i 是一個(gè)整型常量,j 的類型推斷結(jié)果是整數(shù),k 的類型推斷結(jié)果是整型常量,p 的類型推斷結(jié)果指向整型常量的指針,j2 的類型推斷結(jié)果是整型常量,k2 的類型推斷結(jié)果是整型常量的引用。

  • i is const int
  • j is int
  • k is const int &
  • p is const int *
  • j2 is const int
  • k2 is const int &

用于驗(yàn)證的程序是:

#include <iostream> #include <typeinfo>int main() {const int i = 42;auto j = i;const auto &k = i;auto *p = &i;const auto j2 = i, &k2 = i;std::cout << typeid(i).name() << std::endl; // istd::cout << typeid(j).name() << std::endl; // istd::cout << typeid(k).name() << std::endl; // istd::cout << typeid(p).name() << std::endl; // PKistd::cout << typeid(j2).name() << std::endl; // istd::cout << typeid(k2).name() << std::endl; // istd::cout << std::endl;std::cout << std::boolalpha; // 接下來(lái)的輸出把 bool 值顯示成 true/falsestd::cout << "i and j have same type? "<< std::is_same<decltype(i), decltype(j)>::value << std::endl;std::cout << "i and k have same type? "<< std::is_same<decltype(i), decltype(k)>::value << std::endl;std::cout << "i and j2 have same type? "<< std::is_same<decltype(i), decltype(j2)>::value << std::endl;std::cout << "j and j2 have same type? "<< std::is_same<decltype(j), decltype(j2)>::value << std::endl;std::cout << "k and k2 have same type? "<< std::is_same<decltype(k), decltype(k2)>::value << std::endl;return 0; } // 運(yùn)行結(jié)果 // print i means int, and PKi means pointer to const int. i i i PKi i ii and j have same type? false i and k have same type? false i and j2 have same type? true j and j2 have same type? false k and k2 have same type? trueProcess finished with exit code 0

2.36

【出題思路】

本題旨在考察 decltype 與引用的關(guān)系。對(duì)于 decltype 所用的表達(dá)式來(lái)說(shuō),如果變量名加上一對(duì)括號(hào),得到的類型與不加括號(hào)時(shí)會(huì)有不同。具體來(lái)說(shuō),如果 decltype 使用的是一個(gè)不加括號(hào)的變量,則得到的結(jié)果就是該變量的類型;如果給變量加上了一層或多層括號(hào),編譯器就會(huì)把它當(dāng)成一個(gè)表達(dá)式,從而推斷得到引用類型。

【解答】

在本題的程序中,初始情況下 a 的值是 3,b 的值是4。decltype(a) c = a; 使用的是一個(gè)不加括號(hào)的變量,因此 c 的類型就是 a 的類型,即該語(yǔ)句等同于 int c = a;,此時(shí) c 是一個(gè)新整型變量,值為 3。decltype((b)) d = a; 使用的是一個(gè)加了括號(hào)的變量,因此 d 的類型是引用,即該語(yǔ)句等同于 int &d = a;,此時(shí) d 是變量 a 的別名。

執(zhí)行 ++c; ++d; 時(shí),變量 c 的值自增為 4,因?yàn)?d 是 a 的別名,所以 d 自增 1 意味著 a 的值變成了 4。當(dāng)程序結(jié)束時(shí),a、b、c、d 的值都是 4。

#include <iostream> #include <typeinfo>int main() {int a = 3, b = 4;decltype(a) c = a;decltype((b)) d = a;++c;++d;std::cout << typeid(c).name() << std::endl; // intstd::cout << typeid(d).name() << std::endl; // int &std::cout << c << std::endl; // 4std::cout << d << std::endl; // 4return 0; }

2.37

【出題思路】

decltype 的參數(shù)既可以是普通變量,也可以是一個(gè)表達(dá)式。當(dāng)參數(shù)是普通變量時(shí),推斷出的類型就是該變量的類型;當(dāng)參數(shù)是表達(dá)式時(shí),推斷出的類型是引用。

【解答】

根據(jù) decltype 的上述性質(zhì)可知,c 的類型是 int,值為 3;表達(dá)式 a = b 作為decltype 的參數(shù),編譯器分析表達(dá)式并得到它的類型作為 d 的推斷類型,但是不實(shí)際計(jì)算該表達(dá)式,所以 a 的值不發(fā)生改變,仍然是 3;d 的類型是 int &,d 是 a 的別名,值是 3;b 的值一直沒(méi)有發(fā)生改變,為 4。

2.38

【出題思路】

auto 和 decltype 是兩種類型推斷的方式,本題旨在考察二者的區(qū)別和聯(lián)系。

【解答】

auto 和 decltype 的區(qū)別主要有三方面:

  • auto 類型說(shuō)明符用編譯器計(jì)算變量的初始值來(lái)推斷其類型,而 decltype 雖然也讓編譯器分析表達(dá)式并得到它的類型,但是不實(shí)際計(jì)算表達(dá)式的值。
  • 編譯器推斷出來(lái)的 auto 類型有時(shí)候和初始值的類型并不完全一樣,編譯器會(huì)適當(dāng)?shù)馗淖兘Y(jié)果類型使其更符合初始化規(guī)則。例如,auto 一般會(huì)忽略掉頂層 const,而把底層 const 保留下來(lái)。與之相反,decltype 會(huì)保留變量的頂層 const。
  • 與 auto 不同,decltype 的結(jié)果類型與表達(dá)式密切相關(guān),如果變量名加上了一對(duì)括號(hào),則得到的類型與不加括號(hào)時(shí)會(huì)有不同。如果 decltype 使用的是一個(gè)不加括號(hào)的變量,則得到的結(jié)果就是該變量的類型;如果給變量加上了一層或多層括號(hào),則編譯器將推斷得到引用類型。
  • 一個(gè)用以說(shuō)明的示例如下所示:

    #include <iostream> #include <typeinfo>int main() {int a = 3;auto c1 = a;decltype(a) c2 = a;decltype((a)) c3 = a;const int d = 5;auto f1 = d;decltype(d) f2 = d;std::cout << typeid(c1).name() << std::endl; // intstd::cout << typeid(c2).name() << std::endl; // intstd::cout << typeid(c3).name() << std::endl; // int &std::cout << typeid(f1).name() << std::endl; // intstd::cout << typeid(f2).name() << std::endl; // const intc1++;c2++;c3++;f1++;// f2++; // 錯(cuò)誤:f2 是整型常量,不能執(zhí)行自增操作std::cout << a << " " << c1 << " " << c2 << " " << c3 << " " << f1<< " " << f2 << std::endl;return 0; } // 運(yùn)行結(jié)果 i i i i i 4 4 4 4 6 5Process finished with exit code 0

    對(duì)于第一組類型推斷來(lái)說(shuō),a 是一個(gè)非常量整數(shù),c1 的推斷結(jié)果是整數(shù),c2 的推斷結(jié)果也是整數(shù),c3 的推斷結(jié)果由于變量 a 額外加了一對(duì)括號(hào)所以是整數(shù)引用。c1、c2、c3 依次執(zhí)行自增操作,因?yàn)?c3 是變量的 a 的別名,所以 c3 自增等同于 a 自增,最終 a、c1、c2、c3 的值都變?yōu)?4。

    對(duì)于第二組類型推斷來(lái)說(shuō),d 是一個(gè)常量整數(shù),含有頂層 const,使用 auto 推斷類型自動(dòng)忽略掉頂層 const,因此 f1 的推斷結(jié)果是整數(shù);decltype 則保留頂層 const,所以 f2 的推斷結(jié)果是整數(shù)常量。f1 可以正常執(zhí)行自增操作,而常量 f2 的值不能被改變,所以無(wú)法自增。

    附:

    • What is the difference between auto and decltype(auto) when returning from a function?
    • decltype vs auto

    2.39

    #include <iostream>struct Foo { /* 此處為空 */} // 注意:沒(méi)有分號(hào) int main() {return 0; } // 編譯無(wú)法通過(guò) main.cpp:3:33: error: expected ';' after struct

    【出題思路】

    本題旨在考查類定義的語(yǔ)法規(guī)范,尤其要注意類體結(jié)束之后的分號(hào)必不可少。

    【解答】

    該程序無(wú)法編譯通過(guò),原因是缺少了一個(gè)分號(hào)。因?yàn)轭愺w后面可以緊跟變量名以示對(duì)該類型對(duì)象的定義,所以在類體右側(cè)表示結(jié)束的花括號(hào)之后必須寫(xiě)一個(gè)分號(hào)。

    稍作修改,程序就可以編譯通過(guò)了。

    #include <iostream>struct Foo { /* 此處為空 */}; int main() {return 0; } Process finished with exit code 0

    2.40

    【出題思路】

    類的設(shè)計(jì)源于實(shí)際應(yīng)用,設(shè)計(jì) Sales_data 類的關(guān)鍵是理解在銷售過(guò)程中應(yīng)該包含哪些數(shù)據(jù)元素,同時(shí)為每個(gè)元素設(shè)定合理的數(shù)據(jù)類型。

    【解答】

    原書(shū)中的程序包含 3 個(gè)數(shù)據(jù)成員,分別是 bookNo(書(shū)籍編號(hào))、units_sold(銷售量)、revenue(銷售收入),新設(shè)計(jì)的 Sales_data 類細(xì)化了銷售收入的計(jì)算方式,在保留 bookNo 和 units_sold 的基礎(chǔ)上,新增了 sellingprice(零售價(jià)、原價(jià))、saleprice(實(shí)售價(jià)、折扣價(jià))、discount(折扣),其中 discount = saleprice / sellingprice。

    #include <iostream>struct Sales_data {std::string bookNo; // 書(shū)籍編號(hào)unsigned units_sold = 0; // 銷售量double sellingprice = 0.0; // 零售價(jià)double saleprice = 0.0; // 實(shí)售價(jià)double discount = 0.0; // 折扣 }; int main() {return 0; }

    2.41

    Sales_data.h

    #ifndef SALESDATA_H // we're here only if SALESDATA_H has not yet been defined #define SALESDATA_H// Definition of Sales_data class and related functions goes here #include <iostream> #include <string>// 頭文件不應(yīng)包含 using 聲明 // using namespace std;class Sales_data {// 友元函數(shù)friend std::istream &operator>>(std::istream &, Sales_data &);// 友元函數(shù)friend std::ostream &operator<<(std::ostream &, const Sales_data &);// 友元函數(shù)friend bool operator<(const Sales_data &, const Sales_data &);// 友元函數(shù)friend bool operator==(const Sales_data &, const Sales_data &);public: // 構(gòu)造函數(shù)的 3 種形式Sales_data() = default;Sales_data(const std::string &book) : bookNo(book) {}Sales_data(std::istream &is) { is >> *this; }Sales_data &operator+=(const Sales_data &);std::string isbn() const { return bookNo; }private:std::string bookNo; // 書(shū)籍編號(hào),隱式初始化為空串unsigned units_sold = 0; // 銷售量,顯式初始化為 0double sellingprice = 0.0; // 原始價(jià)格,顯式初始化為 0.0double saleprice = 0.0; // 實(shí)售價(jià)格,顯式初始化為 0.0double discount = 0.0; // 折扣,顯式初始化為 0.0 };inline bool compareIsbn(const Sales_data &lhs, const Sales_data &rhs) {return lhs.isbn() == rhs.isbn(); }Sales_data operator+(const Sales_data &, const Sales_data &);inline bool operator==(const Sales_data &lhs, const Sales_data &rhs) {return lhs.units_sold == rhs.units_sold &&lhs.sellingprice == rhs.sellingprice &&lhs.saleprice == rhs.saleprice &&lhs.isbn() == rhs.isbn(); }inline bool operator!=(const Sales_data &lhs, const Sales_data &rhs) {return !(lhs == rhs); // 基于運(yùn)算符 == 給出 != 的定義 }Sales_data &Sales_data::operator+=(const Sales_data &rhs) {units_sold += rhs.units_sold;saleprice = (rhs.saleprice * rhs.units_sold + saleprice * units_sold)/ (rhs.units_sold + units_sold);if (sellingprice != 0)discount = saleprice / sellingprice;return *this; }Sales_data operator+(const Sales_data &lhs, const Sales_data &rhs) {Sales_data ret(lhs); // 把 lhs 的內(nèi)容拷貝到臨時(shí)變量 ret 中,這種做法便于運(yùn)算ret += rhs; // 把 rhs 的內(nèi)容加入其中return ret; // 返回 ret }std::istream &operator>>(std::istream &in, Sales_data &s) {in >> s.bookNo >> s.units_sold >> s.sellingprice >> s.saleprice;if (in && s.sellingprice != 0)s.discount = s.saleprice / s.sellingprice;elses = Sales_data(); // 輸入錯(cuò)誤,重置輸入的數(shù)據(jù)return in; }std::ostream &operator<<(std::ostream &out, const Sales_data &s) {out << s.isbn() << " " << s.units_sold << " "<< s.sellingprice << " " << s.saleprice << " " << s.discount;return out; }#endif

    重寫(xiě)練習(xí) 1.20

    main.cpp

    #include <iostream> #include "Sales_data.h"using namespace std;int main() {Sales_data book;std::cout << "請(qǐng)輸入銷售記錄:" << std::endl;// 輸入格式:ISBN 售出本數(shù) 原始價(jià)格 實(shí)際售價(jià)while (std::cin >> book) {std::cout << "ISBN、售出本數(shù)、原始價(jià)格、實(shí)售價(jià)格、折扣為:" << book << std::endl;}return 0; } // 運(yùn)行結(jié)果 請(qǐng)輸入銷售記錄: 0-201-78345-X 3 20.00 19.00 ISBN、售出本數(shù)、原始價(jià)格、實(shí)售價(jià)格、折扣為:0-201-78345-X 3 20 19 0.95 0-202-78345-X 4 30.00 29.00 ISBN、售出本數(shù)、原始價(jià)格、實(shí)售價(jià)格、折扣為:0-202-78345-X 4 30 29 0.966667

    重寫(xiě)練習(xí) 1.21

    main.cpp

    #include <iostream> #include "Sales_data.h"using namespace std;int main() {Sales_data trans1, trans2;std::cout << "請(qǐng)輸入兩條 ISBN 相同的銷售記錄:" << std::endl;std::cin >> trans1 >> trans2;if (compareIsbn(trans1, trans2))std::cout << "匯總信息:ISBN、銷售本數(shù)、原始價(jià)格、實(shí)售價(jià)格、折扣為:"<< "\n" << trans1 + trans2 << std::endl;elsestd::cout << "兩條銷售記錄的 ISBN 不同" << std::endl;return 0; } // 運(yùn)行結(jié)果 請(qǐng)輸入兩條 ISBN 相同的銷售記錄: 0-201-78345-X 3 20.00 19.00 0-201-78345-X 5 20.00 18.00 匯總信息:ISBN、銷售本數(shù)、原始價(jià)格、實(shí)售價(jià)格、折扣為: 0-201-78345-X 8 20 18.6154 0.930769Process finished with exit code 0

    重寫(xiě)練習(xí) 1.22

    main.cpp

    #include <iostream> #include "Sales_data.h"using namespace std;int main() {Sales_data total, trans;std::cout << "請(qǐng)輸入幾條 ISBN 相同的銷售記錄:" << std::endl;// 每次輸入要求 ISBN 相同,售出本數(shù)隨便,原始價(jià)格相同,實(shí)售價(jià)格隨便if (std::cin >> total) {while (std::cin >> trans)if (compareIsbn(total, trans))total += trans;else { // ISBN 不同std::cout << "當(dāng)前書(shū)籍 ISBN 不同" << std::endl;break;}std::cout << "有效匯總信息:ISBN、售出本數(shù)、原始價(jià)格、實(shí)售價(jià)格、折扣為:"<< "\n" << total << std::endl;} else {std::cout << "沒(méi)有數(shù)據(jù)" << std::endl;return -1;}return 0; } // 運(yùn)行結(jié)果(實(shí)售價(jià)格為均值,具體可查看 Sales_item.h 運(yùn)算符 += 重載的實(shí)現(xiàn) 請(qǐng)輸入幾條 ISBN 相同的銷售記錄: 0-201-78345-X 3 20.00 19.00 0-201-78345-X 5 20.00 29.00 0-202-78345-Y 2 200.00 199.00 當(dāng)前書(shū)籍 ISBN 不同 有效匯總信息:ISBN、售出本數(shù)、原始價(jià)格、實(shí)售價(jià)格、折扣為: 0-201-78345-X 8 20 22.8462 1.14231Process finished with exit code 0

    重寫(xiě)練習(xí) 1.23

    #include <iostream> #include "Sales_data.h"using namespace std;int main() {Sales_data trans1, trans2;int num = 1; // 記錄當(dāng)前書(shū)籍的銷售記錄總數(shù)std::cout << "請(qǐng)輸入若干銷售記錄:" << std::endl;if (std::cin >> trans1) {while (std::cin >> trans2) {if (compareIsbn(trans1, trans2)) // ISBN 相同num++;else { // ISBN 不同std::cout << trans1.isbn() << " 共有 "<< num << " 條銷售記錄" << std::endl;trans1 = trans2;num = 1;}std::cout << trans1.isbn() << " 共有 "<< num << " 條銷售記錄" << std::endl;}} else {std::cout << "沒(méi)有數(shù)據(jù)" << std::endl;return -1;}return 0; } // 運(yùn)行結(jié)果 請(qǐng)輸入若干銷售記錄: 0-201-78345-X 3 20.00 19.00 0-201-78345-X 2 20.00 18.00 0-201-78345-X 共有 2 條銷售記錄 0-201-78345-X 5 20.00 19.00 0-201-78345-X 共有 3 條銷售記錄 0-202-78345-Y 3 220.00 129.00 0-201-78345-X 共有 3 條銷售記錄 0-202-78345-Y 共有 1 條銷售記錄 0-201-78345-X 7 20.00 19.99 0-202-78345-Y 共有 1 條銷售記錄 0-201-78345-X 共有 1 條銷售記錄

    注:1.6 節(jié)練習(xí)與重寫(xiě)練習(xí) 1.23 相同

    2.42

    2.41 已實(shí)現(xiàn)該題功能

    轉(zhuǎn)載于:https://www.cnblogs.com/kafffka/p/10963854.html

    《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的第 2 章的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    亚洲精品中文在线 | 蜜桃视频日本 | 日日爱av| 久久久精品 | 又黄又爽又湿又无遮挡的在线视频 | 精品国产亚洲日本 | 免费观看的黄色 | 国产爽视频 | 国产一区二区视频在线播放 | 国产精品久久久免费看 | 精品麻豆| 亚洲最大av在线播放 | 国产精品原创在线 | 精品视频免费看 | 天海冀一区二区三区 | 久久精品视频在线观看 | 久久99影院 | 少妇自拍av| 日韩高清黄色 | 91香蕉视频黄| 久久久久免费网 | 99国内精品久久久久久久 | 在线观看网站黄 | 日本乱码在线 | 91女神的呻吟细腰翘臀美女 | 国产在线观看一 | 深夜免费福利视频 | 欧美精品你懂的 | 中文字幕视频三区 | 久久久国产影视 | 国产高清av免费在线观看 | 国产日韩精品一区二区三区在线 | 久久免费视频这里只有精品 | 在线免费观看视频一区二区三区 | 免费中文字幕在线观看 | 最近更新的中文字幕 | 成人午夜在线观看 | 88av视频 | 久久成年人视频 | 久久免费99精品久久久久久 | 亚洲成熟女人毛片在线 | 开心激情婷婷 | 在线观看亚洲国产精品 | 日韩欧美视频在线播放 | 欧美国产高清 | 欧美精品一级视频 | 色av资源网 | 久久免费视频这里只有精品 | 国产黄在线观看 | 精壮的侍卫呻吟h | 欧美极品一区二区三区 | 免费在线成人 | 亚洲欧美视频 | 视频在线观看国产 | 国产精品久久久久久欧美 | 欧美一区二区三区在线视频观看 | 亚洲成人精品国产 | 日夜夜精品视频 | 91在线超碰| 夜夜操网站| 日韩欧美一区二区在线观看 | 天天干夜夜想 | 久久国产精品免费一区 | 在线亚洲日本 | 中文字幕黄色网 | 高潮毛片无遮挡高清免费 | 久射网| 国产精品欧美在线 | 日韩成人欧美 | 国产精品18毛片一区二区 | av日韩在线网站 | 久久网址| 久久av一区二区三区亚洲 | 91视频在线网址 | 日本久久91| 91av中文字幕 | 日韩欧美一区二区在线观看 | 国产一区二区久久久 | 在线亚洲精品 | 国产精品自拍在线 | 国产91在线免费视频 | 国产剧情在线一区 | 国产一区二区三区免费观看视频 | 在线国产中文 | 黄色大片中国 | 91免费网 | 久久午夜色播影院免费高清 | 国产网红在线观看 | 五月天综合网站 | 久久免费国产精品1 | 久久久免费精品视频 | 精品国模一区二区三区 | 涩涩网站在线播放 | 成人一区影院 | 久草免费资源 | 成人av午夜 | 中文字幕在线国产 | 国产亚洲精品成人av久久ww | 欧美国产日韩一区二区三区 | 国产免费av一区二区三区 | 日韩高清无线码2023 | 亚洲最新av | 激情视频区 | 久久精品综合 | 久久亚洲婷婷 | 狠狠狠的干 | av经典在线 | 日韩啪啪小视频 | www.香蕉视频在线观看 | 日韩av线观看 | 日韩理论影院 | 亚洲电影图片小说 | 69精品久久 | 久久精品欧美一区二区三区麻豆 | 国产精品1000 | 日韩在线免费视频 | 欧美黑人猛交 | 毛片黄色一级 | 色999在线 | 国产区久久| 特级毛片aaa | 黄色软件视频网站 | 亚洲综合视频在线 | 97超碰在线资源 | 日韩美女免费线视频 | 久久久精品欧美一区二区免费 | 日女人电影 | 久久一区国产 | 日韩在线免费高清视频 | 久久久久久久久艹 | 91中文字幕视频 | 日韩高清免费在线观看 | 国产原创在线 | 亚洲精品美女久久久久网站 | 欧美日韩高清不卡 | 手机看片午夜 | 国产精品视频免费 | 六月丁香色婷婷 | 九九99 | 91成品视频| 男女精品久久 | 一本一道波多野毛片中文在线 | 美女视频黄频大全免费 | 91在线永久| www色综合 | 日韩一区二区三区免费电影 | 免费观看丰满少妇做爰 | 在线观看91av | 韩国av永久免费 | 有码中文字幕在线观看 | 大荫蒂欧美视频另类xxxx | 97在线精品国自产拍中文 | 亚洲精品在线观看的 | 在线免费观看涩涩 | 久久久久高清毛片一级 | 91av视频在线观看 | 在线 国产一区 | 粉嫩av一区二区三区四区在线观看 | 激情文学综合丁香 | 日日爽夜夜操 | 久久深夜福利免费观看 | 天天干天天碰 | 99久久精品免费视频 | 久久久www成人免费精品张筱雨 | 国产中文字幕一区二区 | 91成人精品观看 | 久久艹在线观看 | 亚洲欧洲久久久 | 色综合天天做天天爱 | 久久国产精品免费观看 | 亚洲天天在线 | 在线观av | www.香蕉视频 | 国产99久久久国产精品成人免费 | 婷婷亚洲五月色综合 | av女优中文字幕在线观看 | 麻豆精品在线 | 久久99国产精品 | 美女视频一区 | 免费一级毛毛片 | av丝袜制服| 国产色在线,com | 中文字幕国产一区二区 | 17婷婷久久www | 69av国产| 国产精品久久久久久久午夜 | 亚洲精品88欧美一区二区 | 国产99久久99热这里精品5 | 五月婷婷在线播放 | 国产精品久久久久久99 | 91av久久| 国产人成免费视频 | 精品久久91 | www操操 | 亚州精品在线视频 | 美女视频黄免费 | 中文字幕国内精品 | 国产黄色片在线 | 人人爽人人插 | 免费精品在线视频 | 夜夜躁狠狠躁日日躁视频黑人 | 欧美在线你懂的 | 99在线播放 | 久久综合免费视频 | 亚洲欧洲精品一区二区 | 三级黄色网址 | 国产小视频你懂的在线 | 69国产盗摄一区二区三区五区 | 国产精品18久久久久久不卡孕妇 | 偷拍区另类综合在线 | 欧美日韩精品区 | aa级黄色大片 | 中文字幕资源在线观看 | 久热免费在线 | 免费看日韩 | 成 人 免费 黄 色 视频 | 日韩欧美国产激情在线播放 | 免费黄色小网站 | 亚洲精品电影在线 | 日韩成片| 欧美一级片免费在线观看 | 国产午夜三级一区二区三桃花影视 | www国产亚洲精品久久麻豆 | 91丨九色丨蝌蚪丨老版 | 欧美另类v | 成人福利在线观看 | 久久久久久久国产精品视频 | 国产资源中文字幕 | 欧美一区二区三区免费看 | 欧美激情另类文学 | 国产午夜在线观看 | 日韩一区二区三区观看 | 久久免费精品视频 | 97超碰超碰久久福利超碰 | 天天久久综合 | 综合久色 | 成人一级免费视频 | 午夜在线国产 | 欧美日韩国产综合一区二区 | 手机av观看| 一区二区三区中文字幕在线观看 | 日本在线精品视频 | 国产精品2019 | 美女精品在线观看 | 涩涩网站在线观看 | 不卡的av片| 国产精品自产拍在线观看 | 国产精品色在线 | 国产成人中文字幕 | 色黄视频免费观看 | 亚洲午夜精品久久久 | 成人日批视频 | 色播五月婷婷 | 麻豆影视网 | 精品高清视频 | 免费看十八岁美女 | 97视频在线播放 | 久久伊人精品一区二区三区 | 成人免费在线视频观看 | 成人av免费网站 | 日韩在线观看第一页 | 精品亚洲一区二区三区 | 国产不卡免费视频 | 欧美在线久久 | www.香蕉| 中文资源在线观看 | 国产小视频你懂的 | 日韩欧美视频免费观看 | 中文字幕在线播出 | 中文字幕日韩在线播放 | 99色| 日日噜噜噜噜夜夜爽亚洲精品 | 欧美十八 | 美女视频又黄又免费 | 久久成人高清 | 揉bbb玩bbb少妇bbb | 精品成人a区在线观看 | 色婷婷国产在线 | 91九色免费视频 | 国产精品福利久久久 | 国产在线最新 | 日本精品中文字幕在线观看 | 天天插天天操天天干 | 欧美成人视 | 日韩在线免费观看视频 | 精品高清视频 | 中文字幕在线观看视频一区二区三区 | 国产亚洲成av片在线观看 | 久久99国产综合精品 | 免费日韩三级 | 亚洲va欧美 | 免费av大全 | 欧美最新另类人妖 | 日韩精品一区二区三区高清免费 | avwww在线观看 | 久久夜av | 九九亚洲视频 | 中文字幕在线观看完整版电影 | 91麻豆精品久久久久久 | 精品国偷自产在线 | 日韩毛片在线免费观看 | 久久久综合色 | 97影视| 91热| 欧美精品你懂的 | 91伊人| 国产99久久久国产精品免费看 | 午夜在线资源 | 依人成人综合网 | 日韩在线第一 | 久久久久在线视频 | 国产大陆亚洲精品国产 | 国产一性一爱一乱一交 | 国产a级片免费观看 | 久免费视频 | 日本在线观看中文字幕无线观看 | 国产精品岛国久久久久久久久红粉 | 特级a毛片| 日本精品视频一区二区 | 亚洲天堂网视频在线观看 | 91视频麻豆| 天天综合天天做天天综合 | 成人网在线免费视频 | 久久国产精品99久久久久 | 蜜臀aⅴ国产精品久久久国产 | 久久国产精品影片 | 亚洲综合丁香 | 精品一区二区三区香蕉蜜桃 | 天天草av| 欧美精品午夜 | 99精品一区二区 | 在线看av的网址 | 日韩精品视频免费专区在线播放 | 涩涩成人在线 | 涩涩成人在线 | 91精品国产福利 | 国产一级性生活 | 在线黄av | 麻豆激情电影 | 免费在线国产视频 | 激情视频在线观看网址 | 成人在线视频一区 | 一级片免费观看视频 | 一级片免费在线 | 色av网站 | 97成人超碰| 亚洲电影久久久 | 久久综合婷婷综合 | 亚洲综合视频在线 | 日韩影片在线观看 | 国产精品岛国久久久久久久久红粉 | 天天干天天干天天干天天干天天干天天干 | 亚洲黄在线观看 | 探花系列在线 | 婷婷丁香色 | 97自拍超碰 | 亚洲美女精品区人人人人 | 99视频99| 日韩精品视频在线观看免费 | 国产中文欧美日韩在线 | 色综合色综合久久综合频道88 | 国产裸体无遮挡 | 婷婷综合久久 | 怡春院av | 日本特黄一级片 | 中文字幕在线影院 | 亚洲三级在线 | 国产黄a三级 | 激情在线网址 | 夜夜爱av| 国产婷婷在线观看 | 国产一级免费电影 | 欧美日韩视频一区二区三区 | 日日射av | 日韩视频一区二区三区在线播放免费观看 | 免费精品在线 | 国内小视频在线观看 | 91九色在线视频 | 日韩在线视频观看 | 韩国一区二区三区在线观看 | 色综合天天综合在线视频 | 叶爱av在线 | 亚洲欧美日韩国产精品一区午夜 | 午夜久久久精品 | 91视频91自拍 | 欧美激情视频一区二区三区免费 | 国产亚洲精品久久久网站好莱 | 97在线影视 | 日本丶国产丶欧美色综合 | 国产又黄又爽又猛视频日本 | 99精品一级欧美片免费播放 | 中文字幕乱码视频 | 黄色免费网站 | 夜又临在线观看 | 午夜美女网站 | 99精品久久久久久久 | 五月综合激情 | 色99网| 国产高清视频免费最新在线 | 欧美一级特黄高清视频 | 911精品美国片911久久久 | 国产成人久久av免费高清密臂 | 国产精品一区二区吃奶在线观看 | 91中文字幕在线 | 亚洲女欲精品久久久久久久18 | 国产视频一区二区三区在线 | 国产精品福利视频 | 国产剧情一区二区在线观看 | 亚洲午夜激情网 | 九九色网| 精品在线看 | 亚洲无毛专区 | 久草精品视频 | 日韩在线在线 | 973理论片235影院9 | 国产免费叼嘿网站免费 | 日韩电影一区二区在线 | 人人澡人人添人人爽一区二区 | 日韩精品一区电影 | 91av短视频| 日本激情视频中文字幕 | 国产精品成人一区二区 | www.com在线观看| 丁香五香天综合情 | 久久久久草 | 亚州精品视频 | 日精品 | 欧美人操人 | 精品久久久久久久久久久久久 | 亚洲va在线va天堂 | 亚洲视频免费在线观看 | 干干夜夜 | 一级黄网 | 超碰在线最新网址 | 免费一级特黄毛大片 | 91成人观看 | 夜夜躁日日躁狠狠躁 | 香蕉视频日本 | 国产在线一区观看 | 国产一区二区三区免费在线观看 | 国产成人精品999在线观看 | av网站在线免费观看 | 九九热免费观看 | 在线亚州 | 婷婷国产一区二区三区 | 九九交易行官网 | 午夜免费电影院 | 色吊丝在线永久观看最新版本 | 一区二区三区四区在线 | 国产区欧美 | 日韩欧美在线综合网 | 午夜丰满寂寞少妇精品 | 狠狠色狠狠综合久久 | 欧美精品久久久久久久亚洲调教 | 91精品国产乱码久久 | 日韩一区二区免费在线观看 | 色资源在线 | 午夜久久视频 | 久久综合久久88 | 国产成人久 | 精品国产乱码一区二区三区在线 | 久久久久久国产精品久久 | 久久99精品国产91久久来源 | a级片韩国 | 国内视频一区二区 | 毛片网站免费在线观看 | 激情 亚洲| 久久久91精品国产 | 精品一区二区免费视频 | 日韩视频免费在线观看 | 日日干夜夜骑 | 日韩二级毛片 | 亚洲精品一区二区三区在线观看 | 天天超碰 | 麻豆免费看片 | 久久精品国产精品 | 成人黄色大片在线免费观看 | 国产一区二区在线免费视频 | 国产成人一区二区三区在线观看 | 国产精品一区二区麻豆 | 美女露久久 | 激情电影影院 | 国产裸体视频bbbbb | 91视频88av| 四虎影视成人永久免费观看亚洲欧美 | 91精品免费在线观看 | 在线看不卡av | 亚洲日本欧美在线 | 成人av中文字幕在线观看 | 精品久久亚洲 | 日韩欧美国产免费播放 | 亚洲精品在线资源 | 中文在线8资源库 | 成人中心免费视频 | 精品国产免费久久 | 在线国产视频 | 国产成人a亚洲精品 | 91精品国产乱码久久 | 国产亚洲高清视频 | 丰满少妇一级 | 久草香蕉在线 | 91一区一区三区 | 中文字幕黄网 | 色噜噜噜| 久久久福利视频 | 久久久五月婷婷 | 蜜臀av免费一区二区三区 | 国产色女人| 久久精品com| 国产精品乱码久久 | 国产精品不卡一区 | 精品国产成人在线影院 | 日本在线观看一区二区三区 | 日本高清久久久 | 精品国产一区二区久久 | 中文字幕人成乱码在线观看 | 免费观看一级 | 成人小视频在线播放 | 中文字幕有码在线观看 | 亚洲精品视频二区 | 99这里只有| 最近日本中文字幕a | 国产字幕av | 久久激情日本aⅴ | 国产免费影院 | 日韩在线电影一区二区 | 亚洲另类视频在线观看 | 精品女同一区二区三区在线观看 | 天天干天天干天天色 | 国产视频 亚洲视频 | 成人久久久久久久久久 | 国产精品视频永久免费播放 | 国产永久免费高清在线观看视频 | 欧洲成人免费 | 亚洲人成综合 | 中文免费 | 人人干人人模 | 久久婷婷亚洲 | 亚洲精品99久久久久中文字幕 | 免费a v视频 | 欧美色综合天天久久综合精品 | 欧洲性视频 | 久热免费 | 久久久久电影网站 | 国产在线 一区二区三区 | 日本视频精品 | 国产精品久久久久久久久久直播 | 日日摸日日添日日躁av | 97在线超碰 | 亚洲一区二区三区精品在线观看 | 中文字幕精品一区 | 久久免费看 | 日韩精品在线免费观看 | 国产伦理久久精品久久久久_ | 国产成人久久久久 | 99精品国产免费久久 | 久久特级毛片 | www.狠狠干| 亚洲综合激情 | 天天射天天干天天插 | 国内揄拍国产精品 | 国产日产精品一区二区三区四区的观看方式 | 日日夜夜干 | 日韩精品欧美专区 | 国产成人亚洲在线电影 | 日韩免费视频网站 | 91资源在线观看 | 五月婷婷在线观看视频 | 在线观看国产一区二区 | 精品国产aⅴ一区二区三区 在线直播av | 久久av一区二区三区亚洲 | www.com操| 国产高清福利在线 | 色五丁香| 99久久99久久精品免费 | 欧美日韩精品影院 | 欧美美女视频在线观看 | 丝袜足交在线 | 日韩综合第一页 | 国产精品麻豆99久久久久久 | 久久久久久久久久久网站 | 人人干人人上 | 视频一区二区三区视频 | 不卡的av片 | 日韩中字在线观看 | 在线观看av中文字幕 | 亚洲干视频在线观看 | 天天综合亚洲 | 91精品国产高清自在线观看 | 天天爽夜夜操 | 狠色狠色综合久久 | 日韩理论视频 | 久久久久久久久毛片 | 成人免费看片98欧美 | 亚洲精品字幕在线观看 | 毛片在线网 | 99久久精品国产欧美主题曲 | 美女福利视频网 | 最近字幕在线观看第一季 | 麻豆视频国产精品 | 国产精品一区二区av | 97精品伊人 | 毛片网站在线看 | 97视频网站 | 日韩美女黄色片 | 国产成人久久久77777 | 成人黄色毛片视频 | 亚洲精品日韩一区二区电影 | 天堂在线一区 | 久久精品国产成人 | 久久视频在线视频 | 久久久久久久久综合 | 色综合久久综合 | 伊人婷婷网 | 成年人app网址 | 日韩视频一区二区三区 | 91精品亚洲影视在线观看 | 中文视频在线看 | 91网在线观看 | 日本中文一级片 | 日本久久久亚洲精品 | 婷婷五天天在线视频 | 在线观看不卡的av | 久久精品一区二区三区国产主播 | 色综合天天综合 | 六月丁香在线观看 | 免费在线观看av网站 | 韩国视频一区二区三区 | www黄com| 天天超碰 | 亚洲免费观看在线视频 | 久草在线欧美 | 精品乱码一区二区三四区 | 亚洲aⅴ乱码精品成人区 | 亚洲日本va午夜在线影院 | 韩国在线视频一区 | 在线免费高清一区二区三区 | 久久一及片 | 国产精品久久久久毛片大屁完整版 | 欧美久久久久久久久久 | 久操视频在线播放 | www日日夜夜 | 日本激情视频中文字幕 | 婷婷99| 日韩亚洲在线视频 | 亚洲欧洲国产精品 | 亚洲 欧美 成人 | 在线天堂亚洲 | 人人狠狠综合久久亚洲婷 | 色婷婷av国产精品 | 99精彩视频 | 欧美国产高清 | 天天干天天干天天射 | 午夜少妇 | 国产精品视频免费在线观看 | 99久久婷婷国产综合亚洲 | 亚洲精品白浆高清久久久久久 | 久久99精品久久久久久 | av资源在线看 | 精品中文字幕视频 | www.夜夜| 久久综合激情 | 美女又爽又黄 | 美女精品 | 欧美福利视频 | 在线视频 一区二区 | 激情视频久久 | 久久免费在线观看 | 天天插狠狠插 | 黄色日视频 | 国产无吗一区二区三区在线欢 | 日韩精品一区二区三区免费观看视频 | 日韩av一区二区在线 | 国产91av视频在线观看 | 欧美日韩中文在线视频 | 狠狠色丁香久久婷婷综合_中 | 免费国产一区二区视频 | 一性一交视频 | 91免费观看 | 98超碰在线 | 国产原创av片 | 天天射成人 | 国产成人精品a | 大片网站久久 | 丁香花五月 | 免费开视频 | 91av色| 五月婷婷天堂 | 中文字幕大全 | 粉嫩av一区二区三区四区在线观看 | 国产精品久久久久一区二区 | 免费视频久久久 | 国产一区二区不卡在线 | 中文字幕在线观看三区 | 在线观看视频你懂的 | 夜夜夜夜操 | 成人黄色在线观看视频 | 国产精品久久中文字幕 | 国产美女视频免费观看的网站 | 91亚洲精品久久久蜜桃网站 | 国产一级黄色电影 | 国产精品欧美一区二区三区不卡 | 亚洲资源在线观看 | 久艹视频免费观看 | 欧美日韩国产在线精品 | 日韩伦理片一区二区三区 | 91精彩视频在线观看 | 国产精品免费观看久久 | 国产91丝袜在线播放动漫 | 精品高清美女精品国产区 | 久章草在线观看 | 国产成人精品午夜在线播放 | 久久成年人视频 | 日韩字幕| 婷婷国产v亚洲v欧美久久 | 精品久久久久久一区二区里番 | 精品国产乱码久久久久久三级人 | 国产精品一区二区三区在线播放 | 久久久久久电影 | 色综合天天天天做夜夜夜夜做 | 人人爱在线视频 | 正在播放亚洲精品 | 视频三区| 亚洲欧美日韩国产一区二区 | 久久九九影院 | 毛片网站观看 | 色久av| 99爱视频| 国产福利91精品 | 亚洲国产精品视频 | av在线亚洲天堂 | 视频1区2区 | 久久久久久国产一区二区三区 | 国产又粗又猛又爽又黄的视频免费 | 久久五月网 | 中文字幕2021| 色综合天天狠天天透天天伊人 | 亚洲老妇xxxxxx | 国产成人精品日本亚洲999 | 91视频免费国产 | 精品一区二区三区久久久 | 激情av网址| 婷婷丁香七月 | 国产视频 亚洲视频 | 日韩小视频 | 91av欧美 | 黄网站免费大全入口 | 五月开心六月伊人色婷婷 | 狠狠操狠狠干天天操 | 欧美成人一区二区 | 日韩av电影免费观看 | 亚洲无人区小视频 | 色婷婷88av视频一二三区 | 国产精品夜夜夜一区二区三区尤 | 久久久久电影 | www.黄色片网站 | 国产精品欧美久久久久无广告 | 久久精品99久久久久久 | 黄色a级片在线观看 | 91最新国产 | 特级毛片在线 | 中文字幕 婷婷 | www国产在线| 麻豆国产精品视频 | 国产精品久久久久久a | 亚洲国产精品推荐 | 免费观看黄色12片一级视频 | 中文字字幕在线 | 人人爽人人爱 | 久久免费播放 | 久久国产精品视频免费看 | 国内精品在线看 | 天天干天天草 | 婷婷综合五月天 | 国产91亚洲 | 人人爽人人射 | 69视频国产 | 四虎精品成人免费网站 | 久久综合色8888 | 亚洲综合色婷婷 | 激情校园亚洲 | 四虎国产| 国产亚洲成av片在线观看 | 久久国产精品免费一区二区三区 | 97精品免费视频 | 久久人网 | 激情久久五月天 | 欧美aaa大片 | 美女中文字幕 | 国产精品综合在线观看 | 欧美日韩精品在线观看视频 | 激情五月婷婷网 | 亚洲黄色免费在线看 | 国产一级特黄毛片在线毛片 | 91免费高清观看 | 97精品一区 | 在线国产欧美 | 国产欧美最新羞羞视频在线观看 | 久久久久 免费视频 | av大片免费在线观看 | 成人av电影网址 | 久久久久国产精品免费免费搜索 | 日韩午夜电影院 | 亚洲国产高清在线观看视频 | 日本久久中文 | 国产一区av在线 | 国产专区欧美专区 | 四虎影视成人精品国库在线观看 | 最新影院| 久久综合婷婷国产二区高清 | 国产精品一区二区三区视频免费 | 婷婷色在线 | h视频日本| 又污又黄网站 | 久久99国产综合精品 | 丁香婷婷网 | 97免费在线观看视频 | 狠狠色噜噜狠狠 | av免费看网站 | 国产黄免费在线观看 | 久久人人爽视频 | 色婷婷狠 | 欧美日韩精品二区第二页 | www黄com | 99综合电影在线视频 | www.99久久.com | 国产第一页在线播放 | www.狠狠插.com | 久久黄色免费视频 | 国产午夜在线观看 | 日韩高清免费在线观看 | 99精品国产福利在线观看免费 | 在线成人免费电影 | 91禁在线看| 免费看一及片 | 五月婷婷香蕉 | 久久久精品成人 | 亚洲黄色在线观看 | 日日干精品 | 日韩 在线 | 亚洲乱码精品久久久 | 亚洲精品在线看 | 玖玖爱免费视频 | 五月婷网站 | 久久草| 欧美aa一级片 | 九九久久国产精品 | 97超级碰碰碰碰久久久久 | 九九热精品视频在线观看 | 天天操天天干天天操天天干 | 丁香激情五月 | 日本精品一 | 国产成人在线观看 | 欧美在线观看小视频 | 日本中文字幕一二区观 | 久草 | 五月天婷婷狠狠 | 91色吧| 国产成人精品久久二区二区 | 欧美另类z0zx| 91亚洲精品久久久中文字幕 | 国产区免费 | 五月婷婷色综合 | 成人av电影在线 | 久99久久| av888av.com | 国产成人av片 | 免费看国产一级片 | 天天操天天射天天操 | 欧美国产精品久久久久久免费 | 九九免费在线观看 | 天天操天| 中文字幕欲求不满 | 久久久伊人网 | 日韩欧美区 | 国产糖心vlog在线观看 | 丁香花在线观看免费完整版视频 | 人人舔人人舔 | 国产精品18久久久久白浆 | 99热这里只有精品在线观看 | 久久国产一二区 | 免费涩涩网站 | 麻豆免费观看视频 | aav在线| 久久综合色8888 | 色是在线视频 | 国产高清日韩 | 成人久久久精品国产乱码一区二区 | 久久久91精品国产一区二区三区 | 国产免费美女 | 国产精品视频一二三 | 九九热1| 国产视频在线看 | 日韩av电影免费观看 | 2024国产精品视频 | 激情片av| 91亚洲精| 亚洲欧美国产精品18p | 9ⅰ精品久久久久久久久中文字幕 | 日日操夜 | 日韩精品一区二区在线观看 | 亚洲好视频 | 国产成人精品一区二 | 中文字幕av最新更新 | 亚洲精品99久久久久久 | 欧美综合色 | 色开心| 久久99国产视频 | 日韩精品一区二区三区视频播放 | 欧美日韩中文另类 | 亚洲最新av在线网址 | 韩日色视频 | 91日韩在线视频 | 免费国产一区二区视频 | 操操操影院 | 精品 一区 在线 | 在线天堂亚洲 | 亚洲成成品网站 | 日韩欧美xxx| 黄色的网站免费看 | а天堂中文最新一区二区三区 | 国产精品一区二区免费视频 | 中文字幕av网站 | 国产一区在线观看免费 | 九九热99视频 | 在线一级片 | 午夜精品一区二区三区在线播放 | 久青草影院 | 欧美日韩国产精品一区二区 | 久久亚洲综合国产精品99麻豆的功能介绍 | 欧美一级性视频 | 人人爽人人爽人人爽人人爽 | 婷婷国产v亚洲v欧美久久 | 亚洲国产一区二区精品专区 | 色在线高清 | 亚洲精品成人网 | 91视频网址入口 | 91亚洲精品乱码久久久久久蜜桃 | 99在线精品视频 | 亚洲成av人影片在线观看 | 77国产精品 | 久久6精品 | 九月婷婷综合网 | 成人app在线免费观看 | 国产精品粉嫩 | 亚洲综合色播 | 免费亚洲黄色 | 亚洲精品中文字幕在线 | 久热免费在线观看 | 亚洲国产欧美在线人成大黄瓜 | 日韩av电影免费在线观看 | 中文字幕婷婷 | 成人91视频 | 亚洲黄色网络 | 国产美腿白丝袜足在线av | 免费在线观看黄 | 手机av电影在线观看 | 麻豆久久精品 | 久久精品99北条麻妃 | 久草视频播放 | 在线天堂中文在线资源网 | 999视频在线播放 | 日韩高清不卡在线 | 草久电影 | 黄色视屏av| 激情久久综合 | a视频在线观看免费 | 天天操天天干天天爽 | 青青河边草手机免费 | 欧美色888 | 中文字幕亚洲精品日韩 | 国产成人中文字幕 | 精品视频区 | 99re6热在线精品视频 | 在线精品观看国产 | 一区二区三区韩国免费中文网站 | 欧美成人中文字幕 | 久久手机免费观看 | 99r在线 | 一级性视频 | 一区二区三区免费在线播放 | 成人app在线免费观看 | 日韩视频在线观看免费 | 久久久黄视频 | 麻豆激情电影 | 成人在线黄色电影 | 黄色在线观看网站 | 五月开心六月伊人色婷婷 | 全黄网站| 日韩理论在线观看 | 国产精品久久电影网 | 99视频一区| 日韩av在线看 | 久久99视频免费 | 日韩视频一二三区 | 91欧美视频网站 | 亚洲一二区精品 | 久久免费av电影 |