指针与一维数组

news2024/9/21 23:40:12

        对于数组元素的访问,可以使用下标,也可以使用指针变量,移动指针可以指向数组中的任意一个元素。

        例如,一维数组和指针的如下定义

int a [5] = {1,2,3,4,5},*p;

p = a;

因为p是指向一维数组的首元素的指针。因此上述关系等价于

int a [5] = {1,2,3,4,5},*p;

p = &a[0];

我们可以利用运算符+,*,[]建立指针与一维数组的关系,如下

注意p[i]表达式中p不是数组名,是指针,这是指针的下标表示法

下面介绍四种访问数组元素的四种等价方式

#include<stdio.h>
int main()
int i,a[5]= {1,2,3,4,5},*p=&a[0];
printf("\na[i] :");
for(i=0;i<5;i++)
printf(" %3d" ,a[i]);   /*常规下标法访问数组元素*/
printf("\n*(a十i):");
for(i=0;i<5;i十+)/*数组名作为指针访问数组元素*/
printf("%3d",*(a+i));
printf("\npLi]n);
for(i=0;i<5;i++)/*指针变量下标法访问数组元素*/
printf(" %3d" ,p[i]);
printf("\n*(p+i):");
for(i=0;i<5;i十十)/*使用指针变量访问数组元素*/
printf("%3d", *(p+i));
return O;

a和p是有差别的,数组名a是一个指针常量,不可赋值,不能进行“a++”操作;p是一个指针变量,可赋值,可以进行“p++”操作。如下

#include<stdio.h>
int main()
{
    int a[5]={1,2,3,4,5},*p-a;
printf("\n *p十十:");
for( ;p<a+5;)
/*此处,*p十十不能用*a十十替换*/
printf("%3d",*p++);
return 0;
}

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

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

相关文章

第三天旅游线路规划

第三天&#xff1a;从贾登峪到禾木风景区&#xff0c;晚上住宿贾登峪&#xff1b; 从贾登峪到禾木风景区入口&#xff1a; 1、行程安排 根据上面的耗时情况&#xff0c;规划一天的行程安排如下&#xff1a; 1&#xff09;早上9&#xff1a;00起床&#xff0c;吃完早饭&#…

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录 [web][极客大挑战 2019]Http 考点&#xff1a;Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点&#xff1a;弱密码字典爆破 四种方法&#xff1a; [web][极客大挑战 2019]Http 考点&#xff1a;Referer协议、UA协议、X-Forwarded-For协议 访问…

matlab读取NC文件(含group)

matlab读取NC文件&#xff08;含group&#xff09;&#xff1a; NC文件数据结构&#xff1a; 代码&#xff1a; % 打开 NetCDF 文件 filename your_file.nc; % 替换为你的文件名% 使用 netcdf.open 函数打开文件 ncid netcdf.open(filename, NC_NOWRITE);% 查看文件中的组 …

JAVA - 关于防重复提交探讨

1、前端提交按钮做单次点击 2、后端接收判断请求的数据包&#xff0c;生成唯一key存redis&#xff0c;设置几秒的过期时间&#xff08;缺陷&#xff1a;带时间戳的数据&#xff0c;需要做些逻辑判断&#xff09; 3、后端代码逻辑redis分布式锁&#xff08;缺陷&#xff1a;re…

说一下解除docker限制内存警告

有时候docker要对容器使用的内存做出限制&#xff0c;通常的做法是使用参数 -m 例如&#xff1a; docker run -m 512M表示容器内存最大不能超过512M。 但这样做&#xff0c;在ubuntu会看到以下警告 WARNING: Your kernel does not support swap limit capabilitiesdocker官方…

ELK笔记

要搞成这样就需要钱来买服务器 开发人员一般不会给服务器权限&#xff0c;不能到服务器上直接看日志&#xff0c;所以通过ELK看日志。不让开发登录服务器。即使你查出来是开发的问题&#xff0c;费时间&#xff0c;而且影响了业务了&#xff0c;就是运维的问题 开发也不能登录…

从零开始学习JVM(七)- StringTable字符串常量池

1 概述 String应该是Java使用最多的类吧&#xff0c;很少有Java程序没有使用到String的。在Java中创建对象是一件挺耗费性能的事&#xff0c;而且我们又经常使用相同的String对象&#xff0c;那么创建这些相同的对象不是白白浪费性能吗。所以就有了StringTable这一特殊的存在&…

用EA和SysML一步步建模(05)使命声明-解构需求01

用EA和SysML一步步建模的操作指南&#xff08;01&#xff09; 用EA和SysML一步步建模&#xff08;02&#xff09;导入ISO-80000 用EA和SysML一步步建模&#xff08;03&#xff09;创建包图和包的关系 用EA和SysML一步步建模&#xff08;04&#xff09;创建“需求组织”包图 …

【PHPStudy搭建Pikachu靶场】自定义网站站点和mysql端口本地搭建Pikachu靶场

文章目录 1. 下载phpstudy和pikaqu源码2. 打开phpstudy&#xff0c;启用apache和mysql3. Phpstudy用自定义的82端口创建网站4. 创建数据库5. 修改apache的端口和网站根目录6. 修改mysql的端口和服务序列号7. 用浏览器打开靶场8. 修改pikachu的config.inc.php文件9. 在浏览器上打…

一些硬件知识(十八)

两个信号PIN之间串接电阻的作用&#xff1a; 1.阻抗匹配 2.吸收反射 3.防止程序异常导致两个IO都是输出的时候短路 尤其针对下图中的信号&#xff1a; 清理穿越机电机中的灰尘&#xff0c;可以用密封胶泥的办法&#xff1a; 一定要小心垫片的掉落&#xff1a; 20块左右的快充充…

魔术方法介绍

目录 一、基本介绍 1、什么是魔术方法 2、常见的魔术方法 二、__str__ 1、基本介绍 2、应用实例&#xff1a;请输出Monster对象的属性信息 三、__eq__ 1、基本介绍 2、应用实例 四、其它几个魔术方法 1、其它魔术方法 2、应用实例 参考文档&#xff1a;3. 数据模型…

SOMEIP_ETS_096: SD_Check_TCP_Connection_before_SubscribeEventgroup

测试目的&#xff1a; 验证DUT&#xff08;Device Under Test&#xff09;在未事先建立TCP连接的情况下&#xff0c;对于包含TCP端点选项的SubscribeEventgroup请求&#xff0c;能够拒绝该请求并发送SubscribeEventgroupNAck。 描述 本测试用例旨在确保DUT遵循SOME/IP协议&a…

堆排序Java

思路 这个代码还不错 https://blog.csdn.net/weixin_51609435/article/details/122982075 就是从下往上进行调整 1. 如何将数组映射成树 对于下面这颗树&#xff0c;原来的数组是&#xff1a; 好&#xff0c;如果调整的话&#xff0c;我们第一个应该调整的是最下边&#x…

JVM面试真题总结(三)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 解释-下Full GC? Full GC&#xff0c;也被称为Major GC&#xff…

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操…

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节&#xff0c;字符串小于等于15直接保存在栈上&#xff0c;超过之后才会使用new分配。

网络学习-eNSP配置多交换机VLAN

实验环境 通过华为eNSP软件实现 1.两台S3700交换机 2.四台电脑PC1&#xff1a;192.168.0.1PC2&#xff1a;192.168.0.2PC3&#xff1a;192.168.0.3PC4&#xff1a;192.168.0.4PC11&#xff1a;192.168.0.11PC22&#xff1a;192.168.0.22PC33&#xff1a;192.168.0.33PC44&…

SpringBoot开启多端口探究--基于多ApplicationContext

文章目录 前情提要一、思路概要二、具体实现三、其他问题父子关系部分依赖 总结 前情提要 前面探讨了management端口开启&#xff0c;grpc端口开启&#xff0c;本文继续探讨在SpringApplication中开启多个端口的方式之多ApplicationContext, 相比management端口基于多WebServe…

AI绘画工具排行榜:探索最受欢迎的AI绘图软件特点与选择指南

AI绘画工具各有优势&#xff0c;从开放性到对特定语言和文化的支持&#xff0c;以及对图像细节和艺术性的不同关注点&#xff0c;根据具体需求选择合适的工具 MidJourney 图片品质卓越&#xff0c;充满独特创意&#xff0c;初期能够免费获取数十账高质量图片&#xff0c;整个生…

uuid.js 使用

相关代码 import { NIL } from "uuid";/** 验证UUID* 为空 则返回 false* param uuid* returns {boolean}*/ export function MyUUIDValidate(uuid: any): boolean {if (typeof uuid "string" && uuid ! NIL) { //uuid ! NIL 判断是否是默认值00…