当前位置: 首页 > news >正文

用多种指针方法访问数据元素,实现逆序输出

这里注意下数组指针的下标表示:

我们已经知道,数组名a总是指向a[0]的指针,*(a+i)是对a[i]的引用,实际上,编译器中,对数组的引用,如a[i],总是被编译器改写成*(a+i)的形式。


另外说明下指针下标表示:
比如:

int a[100]; int *ptr=a;指针下标表示: ptr[i] 

指针下标表示ptr[i] 就相当于对a[i]的引用,也就是* a[i]
直接是a[i]的值

具体来说,当使用ptr[i]时,指针ptr首先被解引用,也就是获取指向的内存地址的值,这个地址加上偏移量i*sizeof(int)(因为ptr是指向int类型的指针)就得到了数组中第i个元素的地址,最后通过解引用获取该元素的值。

 
可以看到,指针和下标运算符的作用是等价的,它们都是用来访问数组中的元素。


#include<stdio.h>#define N 100int main(void){int i,n,a[N];int *ptr=a;scanf("%d",&n);for ( i = 0; i < n; i++){scanf("%d",a+i); //这里也是直接引用地址偏移,a数组首地址}printf("原来数据:\n");for ( i = 0; i <n; i++){printf("%d ",a[i]);}printf("\n");printf("用数组名/下标法引用数据\n");//用数组名/下标法引用数据元素for ( i = n-1; i >=0; i--){printf("%d ",a[i]);}printf("\n");
printf("用数组名/偏移量引用数据\n");//用数组名/偏移量引用数据元素for ( i = n-1; i >=0; i--){printf("%d ",*(a+i)); //*()是对a数组的引用,相当于地址改变,直接引用值}printf("\n");printf("用指针/偏移量法引用数据\n");
for ( i = n-1; i >=0 ; i--)
{printf("%d ",*(ptr+i)); //ptr指针指向a数组首地址,这里使用指针偏移+i来进行遍历,跟2数组引用很像,只不过用的指针
}printf("\n");printf("用指针/下标法法引用数据\n");
for ( i = n-1; i >=0 ; i--)
{printf("%d ",ptr[i]); //ptr[i]相当于 *a[i] ,是对a[i]的引用
}printf("\n");return 0;
}

相关文章:

用多种指针方法访问数据元素,实现逆序输出

这里注意下数组指针的下标表示&#xff1a; 我们已经知道&#xff0c;数组名a总是指向a[0]的指针&#xff0c;*(ai)是对a[i]的引用&#xff0c;实际上&#xff0c;编译器中&#xff0c;对数组的引用&#xff0c;如a[i]&#xff0c;总是被编译器改写成*(ai)的形式。 另外说明下…...

WebDAV之葫芦儿·派盘+NMM

NMM 支持WebDAV方式连接葫芦儿派盘。 推荐一款文件管理器,可以对手机中的文件进行多方面的管理,支持语法高亮和ftp等远程的文件的管理。支持从WebDav服务器连接葫芦儿派盘服务下载文件和上传文件。 NMM文本编辑器是一款文件管理器,在功能上面更加的适合于一些编程人员进行使…...

Redis多级缓存

文章目录一. 什么是多级缓存二. JVM进程缓存一. 什么是多级缓存 传统的缓存策略一般是请求到达Tomcat后&#xff0c;先查询Redis&#xff0c;如果未命中则查询数据库&#xff0c;如图&#xff1a; 存在下面的问题&#xff1a; 请求要经过Tomcat处理&#xff0c;Tomcat的性能…...

【原创】java+swing+mysql会议室管理系统设计与实现

本文主要介绍使用javaswingmysql等技术去设计完成一个企业公司的会议室管理系统&#xff0c;帮助企业员工去进行会议室的预约安排。 功能分析&#xff1a; 会议室管理系统的使用角色&#xff0c;一般分为管理员和员工用户&#xff0c;管理员进行数据管理&#xff0c;员工进行…...

【Redis】Redis 常用数据类型操作 ① ( 数据库操作 | Redis 数据库连接参数 | Redis 数据库个数 | Redis 访问机制 )

文章目录一、Redis 数据库连接参数二、Redis 数据库个数三、Redis 访问机制一、Redis 数据库连接参数 连接 Redis 数据库 , 只需要 IP 地址 , 端口号 , 访问密码 即可 , 如果没有 设置 访问密码 可忽略该选项 ; Redis 默认端口号是 6379 ; 参考 【Redis】Redis 数据库 安装、…...

GAMES101-计算机图形学入门 LEC4: TRANSFORMATION-3D

本节课程视频地址&#xff1a;https://www.bilibili.com/video/BV1X7411F744/?p4 补充上一节课的一个内容&#xff0c;旋转矩阵的逆矩阵是它的转置&#xff0c;也就是说有R−θRθ−1RθTR_{-\theta} R_\theta^{-1}R_\theta^TR−θ​Rθ−1​RθT​ 上节课讲了&#xff0c;…...

robot实战:截取字符串

一&#xff1a;变量标识符号(1) Scalar型变量: "$"作为标识符号&#xff0c;例如&#xff1a;${var}&#xff0c; 这个打印log时只能用logset赋值&#xff1a;a: ${var} Set Variable abcb:${var2} Set Variable If ${Var}abc efgh ace 如果var的值和abc相等&#xf…...

【面经】滴滴测开一面

滴滴测开一面 面试官自我介绍面试者自我介绍大概实习多久&#xff1f;你在在校经历比较丰富&#xff0c;说一下打ACM那些比赛中的一些经验&#xff0c;找一些具体的项目说一下在打ACM中团队里几个人&#xff1f; 你负责什么&#xff1f;在上段实习的过程中都做了哪些事情&…...

数据治理-主数据

二、某企业集团旗下有房地产、供应链、物流、酒店等多个业务子公司&#xff0c;为了统一管理&#xff0c;集团推进数字化转型&#xff0c;建立了统一的数据仓库&#xff0c;各子公司将数据集成到集团信息部负责管理的 数据平台。集团在实施数据治理过程中&#xff0c;发现各业务…...

软考-中级-软件设计师-成绩

低分飘过&#xff0c;备考经验主要就是刷题。...

学习笔记<二> MySQL学习(3):分库、分表

文章目录为什么分库分表一、垂直分片、水平分片二、常用的数据分片策略三、垂直分表、垂直分库、水平分库、水平分表四、垂直切分、水平切分优缺点五、数据分片规则六、分库分表带来的问题本文参考博主「小Y是我的」的文章&#xff0c;原文链接&#xff1a;https://blog.csdn.n…...

重生之我是赏金猎人-SRC漏洞挖掘(八)-记一次移花接木的GetShell

0x00&#xff1a;前言 https://github.com/J0o1ey/BountyHunterInChina 欢迎亲们点个star 作者&#xff1a;RGM78sec 某天测厂商业务时&#xff0c;发现其中有一个提供音乐播放业务的资产&#xff0c;正好里面有我想听的歌&#xff0c;于是就有了这篇文章 0x01&#xff1a;…...

离线数仓(五):数仓搭建

文章目录一、创建数据库二、ODS 层&#xff08;原始数据层&#xff09;三、DWD 层&#xff08;明细数据层&#xff09;3.1 get_json_object 函数使用3.2 启动日志表 DWD层创建四、DWS 层&#xff08;服务数据层&#xff09;五、DWT 层&#xff08;数据主题层&#xff09;六、AD…...

安装SQL Server2017 过程中报KB29119355失败的解决方案

SQLServer 2017脱机版下载地址&#xff1a;http://download.microsoft.com/download/6/4/A/64A05A0F-AB28-4583-BD7F-139D0495E473/SQLServer2017-x64-CHS-Dev.isoMicrosoft SQL Server Management Studio 18管理工具下载https://learn.microsoft.com/zh-cn/sql/ssms/download-…...

2023年浙江建筑特种工(施工升降机)真题题库及答案

百分百题库提供特种工&#xff08;施工升降机&#xff09;考试试题、特种工&#xff08;施工升降机&#xff09;考试预测题、特种工&#xff08;施工升降机&#xff09;考试真题、特种工&#xff08;施工升降机&#xff09;证考试题库等,提供在线做题刷题&#xff0c;在线模拟考…...

2023年进入互联网行业好找工作吗?

俗话说&#xff1a;选择大于努力。年后求职小高峰&#xff0c;大家在找工作的时候选择肯定也多了。说真&#xff0c;不是人人都有铁饭&#xff0c;普通家庭的孩子想要在2023年进入互联网行业去找工作可能吗&#xff1f;01有一点大家要清楚&#xff0c;2022年是进入过一个寒冬的…...

基于策略模式企业实战中策略命中设计

背景 在公司实际项目项目开发中&#xff0c;有一个策略命中的开发需求。根据用户请求参数的不同来动态返回不同的业务数据。比如说有城市、客户年龄、请求时间3个策略维度&#xff0c;不同的城市返回不同的地区的地标&#xff0c;根据时间地标的背景色要发生变化等等的需求。当…...

pod生命周期,pod控制器service

一&#xff1a;pod-demo.yml apiVersion: v1 # <string> kind: Pod # <string> metadata: # <Object>对象&#xff1a;键值对的集合&#xff0c;又称为映射&#xff08;mapping&#xff09;/ 哈希&#xff08;hashes&#xff09; / 字…...

SAP FICO 深入讲解会计凭证

SAP系统在数据处理&#xff0c;无论是业务处理&#xff0c;还是财务处理都会产生大量的凭证&#xff0c;无论是什么凭证&#xff0c;最终的反映形式就是 会计凭证。 1.凭证原则Code 每笔记账都一直以凭证形式存储&#xff0c;每一凭证都作为前后一致的单位保留在系统中&#xf…...

LeetCode 2341. 数组能形成多少数对

【LetMeFly】2341.数组能形成多少数对 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-number-of-pairs-in-array/ 给你一个下标从 0 开始的整数数组 nums 。在一步操作中&#xff0c;你可以执行以下步骤&#xff1a; 从 nums 选出 两个 相等的 整数从 nums…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...