数组的定义,初始化,赋值,传参、返回值、求容量等的总结
程序员文章站
2022-03-11 16:04:49
一)数组概述 数组是用于储存多个相同类型数据的集合。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。 在C语言中, 数组属 ......
一)数组概述
数组是用于储存多个相同类型数据的集合。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。
在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 }
二)数组的定义和初始化
三)数组的传参
四)返回值是数组
五)数组的长度计算