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 和 sa2 是空串

  ia 与 ia2 可能是随机值或者全为0 (编译器问题)

  

练习3.29:相对于vector来说,数组有哪些缺点,请列举一些。

答:与vector不同的地方是,数组的大小确定不变,不能随意向数组中增加元素。因为数组的大小固定,因此对某些特殊的应用来说,程序的运行时性能较好,但是相应地也损失了一些灵活性。

上一篇:ubiome类似数据dada2处理探索6


下一篇:《C++ Primer》学习笔记(八):标准 IO 库