C++Primer第五版 3.5.1节练习

本文详细解读了C++编程中数组与初始化的常见问题,并提供了具体的解决策略。包括数组大小确定性、字符串初始化、数组类型转换等关键点。通过实例演示,帮助开发者理解并避免常见陷阱,提升编程效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习 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不同的地方是,数组的大小确定不变,不能随意向数组中增加元素。因为数组的大小固定,因此对某些特殊的应用来说,程序的运行时性能较好,但是相应地也损失了一些灵活性。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值