首页 > 编程语言 >C++快速入门 第十讲:复杂的数据类型——指针和数组

C++快速入门 第十讲:复杂的数据类型——指针和数组

时间:2023-08-18 14:24:12浏览次数:30  
标签:cout int elemType 数据类型 C++ pBegin pEnd 数组 指针

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

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

实例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 }

标签:cout,int,elemType,数据类型,C++,pBegin,pEnd,数组,指针
From: https://www.cnblogs.com/ybqjymy/p/17640362.html

相关文章

  • C++快速入门 第十一讲:结构
    结构是一种由程序员自己定义的、由其他变量类型组合而成的数据类型。其所能包含的变量的个数是没有限制的。实例1:简单数据库读写1#include<iostream>2#include<fstream>//文件操作3#include<windows.h>//为了使用Sleep()函数45structFishO......
  • C++快速入门 第十二讲:传值、传址和传引用
    实例1:值传递1#include<iostream>23voidchangeAge(intage,intnewAge);4intmain()5{6intage=24;//定义一个age,占一处地址7std::cout<<"Myageis"<<age<<"\n";89changeAge(age,ag......
  • C++快速入门 第二讲:从一个小程序说起
    cout(cout<<i表示变量i流向屏幕显示)是一个输出流对象,属于basic_ostream类的对象。ostream类在iostream头文件中定义。同理cin(回车后,键盘输入缓冲区内容流向cin流的内部缓冲区,cin>>xx操作便从这个缓冲区提取数据,即键盘输入流向程序)为输入流对象,C++标准库所使用的所有标识符(即类......
  • C++快速入门 第三讲:输入输出方法
    实例1:忽略输入字符串的前面部分字符输出1#include<iostream>//23usingnamespacestd;//名字空间45intmain()6{7charbuf[20];//只能存放19个字符,因为字符串以0结尾89cin.ignore(7);//忽略输入的前七个字符10cin.g......
  • C++快速入门 第四讲:文件操作
    ifream与ofream分别为文件读取类和文件写入类实例1:文件读取(读取同一文件夹的test.txt文件内容)1#include<fstream>//涉及到了文件流操作2#include<iostream>34usingnamespacestd;56intmain()//in输入:读out输出:写7{8ifstreamin;//......
  • C++快速入门 第五讲:输入输出小结
    实例1:根据输入内容输出1#include<iostream>2usingnamespacestd;//名字空间3intmain()4{5charanswer;67cout<<"请问可以格式化您的硬盘吗?!【Y/N】"<<"\n";8cin>>answer;910switch(answer......
  • C++ save vector or float to bin
    voidsave_bin(std::vector<float>&data_vector,std::stringname="mnn.bin"){std::ofstreamoutFile(name,std::ios::out|std::ios::binary);......
  • C语言的指针图示
    所谓指针定义,可以认为一个指针位置有2个结构,第一个结构就是指针所指向的地址,第二个结构就是地址里的数据。对赋值操作来说,指针变量在左边和右边不一样,在左边是取地址(也可以理解为容器),在右边的是取地址处的值(也就是容器里的东西)。//结合图示,这里的*ppp你觉得是修改哪个变量的......
  • C++里std::enable_shared_from_this是干什么用的?
    std::enable_shared_from_this使用场景在很多场合,经常会遇到一种情况,如何安全的获取对象的this指针,一般来说我们不建议直接返回this指针,可以想象下有这么一种情况,返回的this指针保存在外部一个局部/全局变量,当对象已经被析构了,但是外部变量并不知道指针指向的对象已经被析构了,如......
  • JS数据类型详解
    JS的数据类型分为基本数据类型+引用数据类型基本数据类型:number,boolean,string,null,undefined, symbol(独一无二并且不可变的数据类型),bigint引用数据类型: Function,Array,Object区别:基本数据类型由于所占内存大小可控所以放于栈中,引用数据类型所占空间不固定放于堆中,并生......