C++习题整理(3)

本文整理了C++编程中关于数组、指针和引用的相关习题及其解答,涵盖了数组初始化、大小、指针操作、引用的特性等方面,通过实例深入解析了各种常见错误及注意事项。
摘要由CSDN通过智能技术生成
习题4.1 
假设get_size 是一个没有参数并返回int 值的函数,下列哪些定义是非法的? 为什么? 

unsigned buf_size = 1024 

(a) int ia[buf_size]; (b) int ia[get_size()]; (c) int ia[4*7-14]; (d) char st[11] = "fundamental"  

【解答】 

(a)非法,buf_size 是一个变量,不能用于定义数组的维数(维长度)。 
(b)非法,get_size()是函数调用,不是常量表达式,不能用于定义数组的维数 (维长度)。 

(d)非法,存放字符串"fundamental"的数组必须有12 个元素,st 只有11 个元 素。

习题4.2

列数组的值是什么? 

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

【解答】 
sa 和sa2 为元素类型为string 的数组,自动调用string 类的默认构造函数将 
各元素初始化为空字符串;ia 为在函数体外定义的内置数组,各元素初始化为 
0;ia2 为在函数体内定义的内置数组,各元素未初始化,其值不确定。

习题4.3 
下列哪些定义是错误的? 

(a) int ia[7] = {0, 1, 1, 2, 3, 5, 8}; 
(b) vector<int> ivec = {0, 1, 1, 2, 3, 5, 8}; (c) int ia2[] = ia; (d) int ia3[] = ivec; 

【解答】 
(b)错误。vector 对象不能用这种方式进行初始化。 (c)错误。不能用一个数组来初始化另一个数组。 (d)错误。不能用vector 对象来初始化数组。


习题4.4 
如何初始化数组的一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值