当前位置: 首页 > 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…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…...

JS红宝书笔记 - 3.3 变量

要定义变量&#xff0c;可以使用var操作符&#xff0c;后跟变量名 ES实现变量初始化&#xff0c;因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符&#xff0c;可以创建一个全局变量 如果需要定义…...