6.3.3 返回数组指针

练习6.36

string (&func(int i))[10];

练习6.37
使用类型别名:

typedef string arrT[10]; //arrT是一个类型别名,它表示的类型是含有10个字符串的数组
arrT& func(int i);// func返回一个含有10个字符串的数组的引用

使用尾置返回类型:

//func接受一个int类型的实参,返回一个引用,该引用绑定含有10个字符串的数组
auto func(int i)->string(&)[10];

使用decltype关键字:

string s[] = { "ab","is","ab" };
decltype(s)& arrRef(int i) {

}

第二种感觉比较直观。

练习6.38

int odd[] = { 1,3,5,7,9 };
int even[] = { 2,4,6,8,10 };
decltype(odd)& arrRef(int i) {
	return (i % 2) ? odd : even;
}

int main(){
	int a = 10;
	cout << arrRef(a)[0]; //返回even数组的引用,数组的第一个元素值为2.
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值