C Primer第五版 6 3 2節練習

2021-07-05 07:27:31 字數 1199 閱讀 9265

練習6.30:編譯第200頁的str_subrange函式,看看你的編譯器是如何處理函式中的錯誤的。

答: e:\c++ primer 第五版 練習和解答\第六章 函式\習題程式\練習6.30.cpp [error] return-statement with no value, in function returning 『bool』 [-fpermissive]

練習6.31:什麼情況下返回的引用無效?什麼情況下返回常量的引用無效?

答:函式終止意味著區域性變數的引用將指向不再有效的記憶體區域。

返回常量的引用無效:在函式內部對常量引用做類似賦值拷貝等動作

練習6.32:下面的函式合法嗎?如果合法,說明其功能;如果不合法,修改其中的錯誤並解釋原因。

int &get(int

*arry, int

index)

int main()

答:錯誤 int *arry 在函式內部定義,返回區域性物件的指標也是錯誤的。一旦函式完成,區域性物件被釋放,指標將指向乙個不存在的物件。

練習6.33:編寫乙個遞迴函式,輸出vector物件的內容。

答:見雲盤程式

練習6.34:如果factorial函式的停止條件如下所示,將發生什麼情況?

if(val != 0)

答:最後運算的結果為0,因為val == 0,函式停止

練習6.35:在呼叫factorial函式時,為什麼我們傳入的值是val – 1而非 val–?

答:假設 val = 3;

int j = val -1 ; //此時j = 3-1 =2

int j= val–;//則 j等於3,即j等於val的當前值,val再進行減1操作,結果不對。

練習6.33

/*

*練習6.33

*2015/6/17

*問題描述:練習6.33:編寫乙個遞迴函式,輸出vector物件的內容。

*功能:遞迴列印

* */

#include

#include

using

namespace

std;

void print(vector

ivec, vector

::size_type j)

int main()

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 編寫一段程式讀入兩個字串,比較其是否相等並輸出結果。如果不相等,輸出較大的那個字串。改寫上述程式,比較輸入的兩...