[转组第9天] | 数组和指针的寻址

本文详细解析了C++中数组与指针的区别及应用,包括数组在函数内的识别、作为参数和返回值的处理方式,以及下标寻址与指针寻址的效率对比。同时介绍了多维数组、指针数组的概念,并对数组指针和函数指针进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2018-05-09

《C++反汇编和逆向技术》第八章 数组和指针的寻址 读书笔记

 虽然数组和指针都是针对地址操作,但它们有许多不同之处。数组是相同数据类型的数据集合,以线性方式连续存储在内存中;而指针只是一个保存地址值的4字节变量。在使用中,数组名是一个地址常量值,保存数组首元素地址,不可修改,只能以此为基地址访问内存数据;而指针却是一个变量,只要修改指针中所保存的地址数据,就可以随意访问,不受约束。

 1. 数组在函数内

  对于数组的识别,应判断数据在内存中,是否连续并且类型是否一致,均符合即可将此段数据视为数组。

 2. 数组作为参数

  当数组作为函数形参时,函数参数中保存的是数组的首地址,是一个指针变量,叫数组指针。

  虽然参数是指针变量,但需要特别注意的是,实参数组名为常量值,而指针或形参数组为变量。使用sizeof(数组名)可以获得数组的总大小,而对指针或者形参中保存的数组名使用sizeof只能得到当前平台的指针长度。

 3. 数组作为返回值

  当返回数组为局部变量数据时,就产生了稳定性问题。因为局部变量已释放。

  局部静态数组有多少元素,也只会检查一次初始化标志位。

 4. 下标寻址和指针寻址

  访问数组的两种方式:下标寻址(“数组[下标]”)和指针寻址。

  指针寻址的方式不但没有下标寻址的方式便利,而且效率也比下标寻址低。由于指针是存放地址数据的变量类型,因此在数据访问的过程中需要先取出指针变量中的数据,然后再针对此数据进行地址偏移计算,从而寻址到目标数据。数组名本身就是常量地址,可直接针对数组名所代替的地址值进行偏移计算。

  ary[n]的地址 = ary的首地址 + sizeof(type)*n

 5. 多维数组

 6. 存放指针类型数据的数组

  顾名思义,存放指针类型数据的数组就是数组中各数据元素都是由相同类型的指针组成,我们称之为指针数组,其语法为:

  类型名*  数组名称  [元素个数];

  char* pBuff[3] = {"Hello","World","!\r\n"}  //字符串指针数组定义

  char  cArray[3][10] = {{"Hello"},{"World"},{"!\r\n"}};  //二维数组定义

  字符指针数组寻址后,得到的是数组成员内容(指针变量值即字符串地址),而二维数组寻址后得到的却是数组中某个一维数组的首地址。

 7. 指向数组的指针变量(数组指针)

  语法:

  类型名  (*指针变量名称)  [一维数组大小]

 8. 函数指针

  语法:

  返回值类型  ([调用约定,可选] *函数指针变量名称)  (参数信息)

 注意:数组指针和函数指针都只是指针变量,(*指针变量名)是为了解释指针变量指向地址的结构。比如Int* ptr,表示ptr指向地址存储了一个int类型变量。但是由于数组自身元素也有类型,函数地址也有返回值,都需要声明。所以,最前面的类型位置就不变了,用(*指针变量名)表示指针所指地址的结构。功能跟int*一样。

  

 

转载于:https://www.cnblogs.com/nww-570/p/9017475.html

内容概要:本文针对国内加密货币市场预测研究较少的现状,采用BP神经网络构建了CCi30指数预测模型。研究选取2018年3月1日至2019年3月26日共391的数据作为样本,通过“试凑法”确定最优隐结点数目,建立三层BP神经网络模型对CCi30指数收盘价进行预测。论文详细介绍了数据预处理、模型构建、训练及评估过程,包括数据归一化、特征工程、模型架构设计(如输入层、隐藏层、输出层)、模型编译与训练、模型评估(如RMSE、MAE计算)以及结果可视化。研究表明,该模型在短期内能较准确地预测指数变化趋势。此外,文章还讨论了隐层节点数的优化方法及其对预测性能的影响,并提出了若干改进建议,如引入更多技术指标、优化模型架构、尝试其他时序模型等。 适合人群:对加密货币市场预测感兴趣的研究人员、投资者及具备一定编程基础的数据分析师。 使用场景及目标:①为加密货币市场投资者提供一种新的预测工具方法;②帮助研究人员理解BP神经网络在时间序列预测中的应用;③为后续研究提供改进方向,如数据增强、模型优化、特征工程等。 其他说明:尽管该模型在短期内表现出良好的预测性能,但仍存在一定局限性,如样本量较小、未考虑外部因素影响等。因此,在实际应用中需谨慎对待模型预测结果,并结合其他分析工具共同决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值