1. 程式人生 > >C++Primer第五版 3.5.1節練習

C++Primer第五版 3.5.1節練習

練習 3.27: 假設txt_size是一個無引數的函式,它的返回值是int。請回答下列哪個定義是非法的?為什麼?

Unsigned buf_size = 1024;
(a) int ia[buf_size];
(b) int ia[4*7-14];
(c) int a[txt_size()];
(d) char st[11] = “fundamental”.


c 非法,txt_size()只有在編譯的時候才能確定其值,當txt_size是constexpr時正確,否則錯誤。
d 非法 沒有空間存放空字元。 應定義為 char st[12] = “fundamental” .

練習 3.28:下列陣列中元素的值是什麼?

string sa[10];
int ia[10];
int main(){
string sa2[10];
int  ia2[10];
}

答:sa空串
Ia 全0
Sa2 空串
Ia2 全0

練習3.29:相對於vector來說,陣列有哪些缺點,請列舉一些。
答:與vector不同的地方是,陣列的大小確定不變,不能隨意向陣列中增加元素。因為陣列的大小固定,因此對某些特殊的應用來說,程式的執行時效能較好,但是相應地也損失了一些靈活性。