一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

计算机是把数组以一组连续的内存块保存的。

数组的第一个元素的地址为该数组的基地址。

实例1:数组元素地址打印

 1 #include <iostream>
 2  
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     const unsigned short ITEMS = 5;
 8     int intArray[ITEMS] = {1,2,3,4,5};
 9     char charArray[ITEMS] = {'F','i','s','h','C'};
10     
11     int *intPtr = intArray;
12     char *charPtr = charArray;
13     
14     cout << "整型数组输出:" << '\n';
15     for(int i=0;i < ITEMS; i++)
16     {
17             std::cout << *intPtr << " at " << (intPtr) << '\n';//用reinterpret_cast把指针类型强制转换为unsigned int
18             intPtr++;//地址加上以其所定义的类型所占的字节 
19     } 
20     
21     cout << "字符型数组输出:" << '\n';
22     for(int i=0;i < ITEMS; i++) 
23     {
24             cout << *charPtr << " at " << (charPtr) << '\n';
25         charPtr++;
26     }
27     return 0;
28 } 

实例2:数组重载

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 void print(int *pBegin,int *pEnd)
 6 {
 7     while(pBegin != pEnd)
 8     {
 9         cout << *pBegin;
10         ++pBegin;//地址加1 
11     }
12 }
13 
14 void print(char *pBegin,char *pEnd)
15 {
16     while(pBegin != pEnd)
17     {
18         cout << *pBegin;
19         ++pBegin;//地址加1 
20     }
21 } 
22 int main()
23 {
24     int num[5] = {0,1,2,3,4};
25     char name[5] = {'F','i','s','h','C'};
26     
27     print(num,num + 5);
28     cout << '\n';
29     print(name,name + 5);
30     cout << '\n';
31     
32     return 0;
33 }

实例3:泛型数组重载

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 template <typename elemType>//将输入参数typename的类型赋值给elemType
 6 void print(elemType *pBegin,elemType *pEnd)
 7 {
 8     while(pBegin != pEnd)
 9     {
10         cout << *pBegin;
11         ++pBegin;//地址加1 
12     }
13 }
14 
15 int main()
16 {
17     int num[5] = {0,1,2,3,4};
18     char name[5] = {'F','i','s','h','C'};
19     
20     print(num,num + 5);
21     cout << '\n';
22     print(name,name + 5);
23     cout << '\n';
24     
25     return 0;
26 }
posted on 2023-08-18 14:10  一杯清酒邀明月  阅读(18)  评论(0编辑  收藏  举报