C语言循环中获取之前变量的值

获取上个数组变量的值

#include <stdio.h>
#include <string.h>enum { GG, DD };
int main() {int bi[] = {0, 0};int bi_s1[] = {0, 0};for (int i = 0; i < 5; i++) {memcpy(bi_s1, bi, sizeof(bi));bi[GG] = i * 3;bi[DD] = i * 2;printf("bigg = %d, bigg_s1 = %d\n", bi[GG], bi_s1[GG]);}return 0;
}

如果不想用memcpy进行拷贝赋值,可以使用一个额外的变量来存储上一次迭代的数组的索引,利用这个索引交替访问两个数组。

#include <stdio.h>enum { GG, DD };
int main() {int bi[2][2] = {{0, 0}, {0, 0}};int current = 0; // 当前正在使用的数组索引for (int i = 0; i < 5; i++) {int previous = (current + 1) % 2; // 计算上一个数组的索引// 更新当前数组的值bi[current][GG] = i * 3;bi[current][DD] = i * 2;// 输出当前数组和上一个数组的内容printf("bigg = %d, bigg_s1 = %d\n", bi[current][GG], bi[previous][GG]);// 切换到下一个数组current = previous;}return 0;
}

在这个实现中,我们使用了一个二维数组bi[2][2],其中bi[0]bi[1]分别表示两个数组。current变量用于指示当前正在使用的数组的索引,而previous变量则计算上一个数组的索引,以便在打印时使用。

输出结果将显示每次迭代中当前数组的值和上一次迭代中的数组的值,效果类似于使用memcpy复制数组的情况,但避免了内存复制的开销。

这种方法更高效,因为它只使用了一个额外的整数变量来存储索引,而不需要进行数组内容的复制。

经测试,性能可以快5倍左右。

如果还要获取更前面的值,可以这样写:

#include <stdio.h>enum { GG, DD };
int main() {int bi[4][2] = {{0, 0}, {0, 0}, {0, 0}, {0, 0}};int current = 0;int s1, s2, s3;for (int i = 1; i <= 10; i++) {s1 = (current + 1) % 4; // 上个值的索引 索引%元素数量 实现循环索引s2 = (current + 2) % 4; // 上上个值的索引s3 = (current + 3) % 4; // 上上上个值的索引bi[current][GG] = i * 3;bi[current][DD] = i * 2;printf("%d %d %d %d \n", current, s1, s2, s3);printf("s = %d, s1 = %d, s2 = %d s3 = %d \n\n", bi[current][GG], bi[s1][GG], bi[s2][GG], bi[s3][GG]);current = s3; // 把最后一个赋值给current}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/31560.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI 是否会通过制造大量垃圾信息来污染互联网

AI 生成内容(AIGC,AI-Generated Content)可能导致大量垃圾信息在互联网上传播,这种现象被称为**“信息污染”**。以下是有关这个问题的详细讨论,包括可能的影响、原因、现状以及应对措施。 1. 影响和潜在问题 1.1 信息污染 低质量内容泛滥:AI工具能够快速生成大量低质量…

好大夫在线医生数据医生姓名科室荣誉等202406

好大夫在线医生数据医生姓名科室荣誉等 2024年6月数据&#xff0c;总共934027条数据&#xff0c;可导出为excel,csv等 好大夫在线2024-06月数据 包含简介信息&#xff01; 可见样例数据 样例数据_医生2.xlsx https://www.alipan.com/s/DBEW9MgHEPP 点击链接保存&#xff0…

易宝OA downloadfile 任意文件读取

【产品&&漏洞简述】 易宝OA系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台&#xff0c;具有信息管理、 流程管理 、知识管理&#xff08;档案和业务管理&#xff09;、协同办公等多种功能 易宝OA downloadfile 文件读取&#xff0c;攻击者可通过…

【单片机毕业设计选题24019】-基于STM32的安防监测灭火系统

系统功能: 1. 水泵喷水灭火功能&#xff1a;当火焰传感器监测到火焰时&#xff0c;蜂鸣器报警&#xff0c;水泵工作实现灭火。 2. 风扇功能&#xff1a;当烟雾传感器检测到CO或温度传感器检测到温度超过阈值时&#xff0c;蜂鸣器报警&#xff0c; 启动风扇进行驱散烟雾或降温…

毫秒级响应!清科优能应用 TDengine 建设虚拟电厂运营管理平台

小T导读&#xff1a;在清科优能的虚拟电厂运营管理平台建设中&#xff0c;项目初期预计涉及约一万台设备、总数据采集量达数十万&#xff0c;在数据库选择上&#xff0c;其希望能支持至少两千台设备的并发数据处理。本文介绍了清科优能的数据库选型经验以及最终应用效果&#x…

简易人工智能入门

一、监督or非监督 监督学习&#xff08;Supervised Learning&#xff09;&#xff1a;训练集有标记信息&#xff08;Y&#xff09;&#xff0c;学习方式有分类和回归 无监督学习&#xff08;Unsupervised Learning&#xff09;&#xff1a;训练集没有标记信息&#xff0c;学习…

后端实现预览pdf,mp4,图片

PDF预览 /*** pdf预览* param response*/RequestMapping(value "/preview")public void showPdf(HttpServletResponse response) {try {//String filePath this.getClass().getClassLoader().getResource("../../static/pdf/readme.pdf").getPath();Stri…

解决virtualbox虚拟机与主机之间复制粘贴

1、在VirtualBox管理器中设置共享粘贴板和拖放方向为双向 2、在存储中设置使用主机输入输出&#xff08;I/O&#xff09;缓存。 3、在存储→控制器&#xff1a;SATA→***.vdi下勾选固态驱动器 4、在虚拟机→设备→安装增强功能 如果上述操作重启虚拟机后&#xff0c;还不行&am…

【考研408计算机组成原理】数值表示和运算之快速数值转换

苏泽 “弃工从研”的路上很孤独&#xff0c;于是我记下了些许笔记相伴&#xff0c;希望能够帮助到大家 另外&#xff0c;利用了工作之余的一点点时间&#xff0c;整理了一套考研408的知识图谱&#xff0c; 我根据这一套知识图谱打造了这样一个408知识图谱问答系统 里面的每一…

【单片机毕业设计选题24018】-基于STM32和阿里云的农业大棚系统

系统功能: 系统分为手动和自动模式&#xff0c;上电默认为自动模式&#xff0c;自动模式下系统根据采集到的传感器值 自动控制&#xff0c;温度过低后自动开启加热&#xff0c;湿度过高后自动开启通风&#xff0c;光照过低后自动开启补 光&#xff0c;水位过低后自动开启水泵…

Kubernetes中的Java微服务部署策略

在现代软件开发中&#xff0c;微服务架构因其灵活性和可扩展性而变得越来越流行。Kubernetes&#xff08;通常简称为K8s&#xff09;是一个开源平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序&#xff0c;非常适合部署微服务。本文将详细介绍如何在Kubernetes中部署…

C++初学者指南第一步---11.字符串(基础)

C初学者指南第一步—11.字符串&#xff08;基础&#xff09; 文章目录 C初学者指南第一步---11.字符串&#xff08;基础&#xff09;1. std::string2. char std::string的元素类型3. std::string字符串操作4. 字面量4.1 C风格字符串字面量4.2 "std::string 字面量"s…

【论文复现|智能算法改进】改进麻雀算法的无人机三维路径规划

目录 1.UAV路径规划数学模型2.改进点3.结果展示4.参考文献5.代码获取 1.UAV路径规划数学模型 【智能算法应用】蜣螂优化算法DBO求解UAV路径规划 2.改进点 Logistics混沌映射 X n 1 μ X n ( 1 − X n ) , X n ∈ ( 0 , 1 ) (1) X_{_{n1}} \mu X_{_n}( 1 - X_{_n} ) ,\qua…

Vulnhub——AI: WEB: 1

渗透复现 &#xff08;1&#xff09;目录扫描爆破出隐藏页面info.php和传参页面&#xff0c;泄露网站绝对路径并且存在SQL注入点 &#xff08;2&#xff09;已知网站绝对路径&#xff0c;存在SQL注入点&#xff0c;尝试OS-shell写入 &#xff08;3&#xff09;OS-shell写入后…

SciPy的原理与使用

文章目录 一、引言二、SciPy的原理1. 基于NumPy2. 子模块化设计3. 优化的数学算法 三、SciPy的使用1. 安装SciPy2. 导入SciPy模块3. 使用SciPy的函数和算法线性代数积分优化 4. 结合其他库使用 四、总结 一、引言 在科学计算和数据处理的领域中&#xff0c;SciPy是一个非常重要…

打造重量级团队:跨越壁垒,引领主数据事业的新篇章

在当下企业竞争激烈、环境复杂多变的背景下&#xff0c;拥有一支高效的团队显得尤为重要。在众多类型的团队中&#xff0c;重量级团队以其跨职能、高协同、强执行力的特点&#xff0c;成为推动企业发展的重要力量。本文将结合我所在公司成立的重量级虚拟组织&#xff0c;探讨如…

AI:音乐创作的未来还是毁灭的序曲?

AI&#xff1a;音乐创作的未来还是毁灭的序曲&#xff1f; 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;它已经渗透到了我们生活的方方面面&#xff0c;包括音乐领域。然而&#xff0c;AI在音乐创作中的角色引发了广泛的讨论和争议。一些人认为AI为音乐…

【深度学习】GPT1,提高语言理解的生成预训练方法

论文&#xff1a; https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf 文章目录 提高语言理解的生成预训练方法摘要引言相关工作自然语言处理的半监督学习无监督预训练辅助训练目标 框架无监督预训练有…

如何使用alias永久别名(linux篇)

一、alias的使用 alias主要作用是起一个别名的用处 它又分两种形式&#xff1a; ① 临时别名 ② 永久别名 1.第一种&#xff08;临时别名&#xff09;&#xff1a; C:\Users\62452>ssh root192.168.0.102 root192.168.0.102s password: Last login: Sat Jun 15 16:30:12 20…

【MATLAB源码-第229期】基于matlab的有源功率因数校正仿真,采用PI调节改善功率因数;改善后达到99%.

操作环境&#xff1a; MATLAB 2022a 1、算法描述 一、整体结构概述 有源功率因数校正&#xff08;APFC&#xff09;是一种用于提高电力系统功率因数的技术&#xff0c;通过控制电流的波形&#xff0c;使其与电压的波形保持一致&#xff0c;从而减少无功功率的产生&#xff…