C Primer第五版 3 5 3節練習

2021-07-05 05:40:30 字數 1494 閱讀 5830

練習3.34:假定p1和p2指向同乙個陣列中的元素,則下面程式的功能是什麼?什麼情況下該程式是非法的。

p1 += p2 – p1;

答案:p1 = p1 + (p2 – p1);

網上的參***:功能是跳過p2-p1個元素

當p1是常量時,程式非法

練習3.35:編寫一段程式,利用指標將陣列中的元素置為0.

答案:見雲盤程式

練習3.36: 編寫一段程式,比較兩個陣列是否相等。再寫一段程式,比較vector物件是否相等。

答案:3.35,3.36見雲盤程式

練習3.35

#include 

using

namespace

std;

int main()

; for (int i = 0; i != 5; ++i)

cout

<< *(a + i) << " ";

cout

<< endl;

int *p = a;

for (int i = 0; i != 5; ++i)

cout

<< endl;

return

0;}

練習3.36

#include 

#include

using

namespace

std;

int main()

; int b[10] = ;

int counter = 0;

int counter2 = 0;

for (int i = 0; i != 10; ++i)

if (counter != 10)

cout

<< "arrays:they are different"

<< endl;

else

cout

<< "arrays:same !!!"

<< endl;

vector

a1 = ;

vector

a2 = ;

auto it1 = a1.begin(); //這裡定義了乙個迭代器,跟下面的迴圈配合

auto it2 = a2.begin();

for (int i = 0; i != 10; ++i)

//其實,簡便的方法是通過下標運算比較,和陣列的結構類似,

//但迭代器好久沒用了,複習下

//cout << counter2 << endl;

if (counter2 != 10)

cout

<< "vectors: they are different"

<< endl;

else

cout

<< "vectors: same !!!"

<< endl;

return

0;}

C Primer第五版 2 4 3節練習

練習2.30 對於下面的這些語句,請說明物件被宣告成了頂層const還是底層const?const int v2 0 v2的值不能被改變,所以這是乙個頂層const int v1 v2 int p1 v1,r1 v1 const int p2 v2 p2存放的是v2的位址,不能間接改變v2的值,但p...

C Primer第五版 2 5 3節練習

練習 2.36 關於下面的 請指出乙個變數的型別以及程式結束時它們各自的值。include int main 練習 2.37 賦值是會產生引用的一類典型表示式,引用的型別就是左值的型別。也就是說,如果i是int,則表示式 i x的型別是int 根據這一特點,請指出下面的 中每乙個變數的型別和值。in...

C Primer第五版 3 2 2節練習

練習3.2 編寫一段程式從標準輸入中一次讀入一整行,然後修改該程式使其一次讀入乙個詞。練習3.3 請說明string類的輸入運算子和getline函式分別是如何處理空白字元的。練習 3.4 編寫一段程式讀入兩個字串,比較其是否相等並輸出結果。如果不相等,輸出較大的那個字串。改寫上述程式,比較輸入的兩...