当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 数组的定义,初始化,赋值,传参、返回值、求容量等的总结

数组的定义,初始化,赋值,传参、返回值、求容量等的总结

2018年06月26日  | 移动技术网IT编程  | 我要评论

怀玉公主演员表,延边足球,淄博红盾信息网

一)数组概述

  数组是用于储存多个相同类型数据的集合。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。

  在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、、结构数组等各种类别。按数组内存的分配方式不同,可分为静态数组和动态数组。按描述维度的不同,可分为一维数组、二维数组、三维数组等。

  以下是经过相关测试实例:

 1 template<class T>
 2 vector<T> transmit_array_to_vec(const T data[], const int arraySize)
 3 {
 4     vector<T> tmp;
 5 
 6     for (int i = 0; i < arraySize; ++i) tmp.push_back(data[i]);
 7 
 8     return tmp;
 9 }
10 
11 template<class T>
12 void transmit_vec_to_array(const vector<T>& vec, T data[])
13 {
14     size_t len = sizeof(data);//4
15 
16     for (size_t i = 0; i < vec.size(); ++i) data[i] = vec[i];
17 }
18 
19 template<class T>
20 T* transmit_vec_to_array(const vector<T>& vec)
21 {
22     T* data = new T[vec.size()];
23 
24     for (size_t i = 0; i < vec.size(); ++i) data[i] = vec[i];
25 
26     return data;
27 }
28 
29 void test_about_array()
30 {
31     {
32         vector<int> vec = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
33         int* data = new int[10];
34         transmit_vec_to_array(vec, data);
35         size_t len = sizeof(data) / sizeof(int);//1
36         for (int i = 0; i < 10; ++i) printf("%d \n", data[i]);
37         delete[]data;
38     }
39     {
40         vector<int> vec = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
41         int data[10];
42         transmit_vec_to_array(vec, data);
43         size_t len = sizeof(data) / sizeof(int);//10
44     }
45     {
46         vector<int> vec = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
47         int* data = transmit_vec_to_array(vec);
48         size_t len = sizeof(data) / sizeof(int);//1
49         for (int i = 0; i < 10; ++i) cout << data[i] << endl;
50         delete[]data;
51     }
52     {
53         vector<int> vec;
54         int data[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
55         int len = sizeof(data) / sizeof(int);//10
56         vec = transmit_array_to_vec(data, len);
57     }
58 }
59 
60 int main()
61 {
62     test_about_array();//有关数组的传参、返回值、赋值、求容量的测试
63 
64     return 0;
65 }

二)数组的定义和初始化

 

三)数组的传参

 

四)返回值是数组

  

五)数组的长度计算

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网