數組的部分練習

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

unsigned buf_size=1024;

(a)int ia[buf_size];  (b)int ia[4*7-14];

(c)int ia[txt_size()];  (d)char st[11]=" fundamental ";

a)非法定義。buf_size不是常量表達式。

b)合法。

c)非法定義。txt_size沒有被定義爲constexpr。

d)非法定義。沒有空間可以存放結尾空字符。

3.28:下列數組中元素的值是什麼?

string sa[10];  
//大小爲10的string類型的數組,其中元素的值均被初始化爲空串
int ia[10];    
//大小爲10的int類型的數組,其中元素的值均被初始化爲0
int main()
{
   
   
  string sa2[10];  
//大小爲10的string類型的數組,其中元素的值被初始化爲空串,string類本身接受
//無參數的初始化,所以函數體內外都被初始化爲空串
  int   ia2[10];  
//大小爲10的int類型的數組,非法操作,其值是未定義的值。
//其中元素的值如果被拷貝或者直接用來輸出,都將會是未定義的操作。
}

3.29:相比於vector來說,數組有哪些缺點,請列舉一些。

1)數組的大小是固定的,不能動態地增長。

2)由於數組的大小固定,所以容易造成內存的浪費。

3)獲取數組大小時不方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章