码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 深入理解数组

时间:2016-06-23 12:43:08      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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 }

  

技术分享

 

c++ 深入理解数组

标签:

原文地址:http://www.cnblogs.com/jin521/p/5610124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!