博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(原創) array可以使用reference方式傳進function嗎? (C/C++)
阅读量:5966 次
发布时间:2019-06-19

本文共 924 字,大约阅读时间需要 3 分钟。

任何型態皆可用C++新提出的reference傳進function,array除了使用pointer方式傳進function外,當然也可以使用reference。

當使用pointer傳進function時,compiler只對array的型態做檢查,就算傳進function時指定了array size,compiler也會忽略,但若使用reference,compiler則會對array size做檢查。

 1
ExpandedBlockStart.gif
ContractedBlock.gif
/**/
/* 
 2InBlock.gif(C) OOMusou 2007 http://oomusou.cnblogs.com
 3InBlock.gif
 4InBlock.gifFilename    : ArrayReferencePassToFunction.cpp
 5InBlock.gifCompiler    : Visual C++ 8.0 / ISO C++
 6InBlock.gifDescription : Demo how to use reference array pass to function
 7InBlock.gifRelease     : 02/09/2007 1.0
 8ExpandedBlockEnd.gif*/
 9
None.gif
10
None.gif#include 
<
iostream
>
11
None.gif
12
None.gif
using
 
namespace
 std;
13
None.gif
14
ExpandedBlockStart.gifContractedBlock.gif
void
 func(
int
 (
&
arr)[
3
]) 
dot.gif
{
15ExpandedSubBlockStart.gifContractedSubBlock.gif  for(int i = 0; i != 3++i) dot.gif{
16InBlock.gif    cout << arr[i] << endl;
17ExpandedSubBlockEnd.gif  }
18ExpandedBlockEnd.gif}
19
None.gif
20
ExpandedBlockStart.gifContractedBlock.gif
int
 main() 
dot.gif
{
21ExpandedSubBlockStart.gifContractedSubBlock.gif  int ia[] = dot.gif{
012}
;
22InBlock.gif  func(ia);
23ExpandedBlockEnd.gif}

14行int (&arr)[3],&arr一定要括號,因為[]比&優先權高。

int &arr[3] // 一個array有三個元素,每個元素為int型態的reference

int (&arr)[3] 三個int型態元素array的reference

雖然compiler能幫我們檢查array size看似不錯,但須將array size寫死,則減少了程式的彈性,若配合function template,則可處理任意size的array。

See Also

Reference
C++ Primer 4th P.240

转载地址:http://uhmax.baihongyu.com/

你可能感兴趣的文章
联手云计算核心技术开发,BoCloud与中科院软件所战略合作
查看>>
2017年背景下的SSD选购技巧有哪些变化?
查看>>
2016年的数据存储和管理的成本将何去何从?
查看>>
Airpods 并非无用,而是苹果借助语音交互布局物联网的新“棋子”
查看>>
项目总结:数据迁移测试
查看>>
SQL中存储过程的创建和使用
查看>>
荷兰政府:保证不强制在任何产品中留有后门
查看>>
编写单元测试的10条理由
查看>>
LINUX-SAMBA服务配置
查看>>
图像处理------光束效果
查看>>
剑指offer 面试题6:重建二叉树
查看>>
基于ES5`defineProperty` 实现简单的 Mvvm框架
查看>>
关于UI设计的一些工作了解
查看>>
spring cloud构建互联网分布式微服务云平台-Spring Cloud Config环境库
查看>>
java B2B2C Springcloud仿淘宝电子商城系统-Zipkin服务端配置
查看>>
Node.js的npm全局安装包引用
查看>>
js事件杂谈
查看>>
SQL Server基础知识 -- SQL 用于各种数据库的数据类型
查看>>
angularjs~ng-class
查看>>
我的友情链接
查看>>