前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c++ 深入理解数组

c++ 深入理解数组

作者头像
拾点阳光
发布2018-05-10 17:56:20
6210
发布2018-05-10 17:56:20
举报
文章被收录于专栏:码云1024码云1024

阅读前提:你得知道啥是数组。

本文需要弄清楚的问题如下:

1,数组作为函数参数,传入的是值,还是地址?

2,数组作为函数参数,数组的长度能否确定?

解决如下

1,数组作为函数参数,传入的是地址。因为数组不可以被拷贝

 1 #include <iostream>
 2 using namespace std;
 3 void testArray(int a[])
 4 {
 5     cout<<"a作为参数的地址是"<<a<<endl;
 6 }
 7 int main()
 8 {
 9     int a[]={1,2,3,4,5,6};
10     cout<<"a刚开始的地址是:"<<a<<endl;
11     testArray(a);
12     system("pause");
13     return 0;
14 }

2,数组作为函数参数,在用sizeof获取他的大小时,它已经是一个指针了。也就是说函数中没有办法知道传入进来的数组大小是多少。(数组仅在定义其的域范围内可确定大小。)

 1 #include <iostream>
 2 using namespace std;
 3 void testArray(char a[])
 4 {
 5     cout<<"a的大小是:"<<sizeof(a)<<endl;
 6 }
 7 int main()
 8 {
 9     char a[]={1,2,3,4,5,6};
10     cout<<"a刚开始的大小是:"<<sizeof(a)<<endl;
11     testArray(a);
12     system("pause");
13     return 0;
14 }

3.确定函数中传入数组长度的方法

 1 #include <iostream>
 2 using namespace std;
 3 void testArray(char a[],int len)
 4 {
 5     cout<<"a的大小是:"<<len<<endl;
 6 }
 7 int main()
 8 {
 9     char a[]={1,2,3,4,5,6};
10     cout<<"a刚开始的大小是:"<<sizeof(a)<<endl;
11     testArray(a,sizeof(a)/sizeof(a[0]));
12     system("pause");
13     return 0;
14 }

返回数组的函数

数组不能被拷贝,所以函数不能返回数组,不过函数可以返回数组的指针或是引用

空一行留待以后补充

声明一个返回数组指针的函数

Type (*function(parameter_list))[demension]

Type返回类型

parameter_list参数列表

demension数组的长度

(*function(parameter_list))两端的括号必须括上,没有括号返回的类型将是指针的数组

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-06-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档