C语言中的指针变量p,特殊表达式p[0] ,(*p)[0],(px+3)[2] ,(*px)[3]化简方法

一.已知以下代码,请问以下 式子p[0]  ,p[1]  ,(*p)[0]  ,(*p)[1] 是什么意思?

int A[3] = {1,2,3};
int (*p)[3] = &A;

因为前面的嵌入式C语言基础的章节中说过,数组下标其实就是数组首元素的地址往上偏移的单位数,即:   

*(A+0)   等价于  A[0]
*(A+1)   等价于  A[1]
*(A+2)   等价于  A[2]

化简方法:

p[0] =*(p+0)= *p = *(&A) = A = &A[0]p[1] =*(p+1)= *(&A+1) 结构体A向上挪动12个字节,这样会出现访问越界。

(*p)[0] = (*&A)[0] = A[0]  首元素的值(*p)[1] = (*&A)[1] = A[1]  第一个元素的值

结论:

p[0]     --> 数组首元素的地址
p[1]     --> 段错误
(*p)[0]  --> 数组首元素的值
(*p)[1]  --> 数组第2个元素的值

二.如果有以下式子说明:
 int B[10];
 int (*p)[10] = &B;
 int *px = B;

则以下能够正确引用数组的元素的是: CEF 
A. *p+1    B.  *(p[1])   C. (px+3)[2]   D. (*px)[3]   E. (*p)[0]    F. *(px+1)

化简方法:

*p+1 = *(&B)+1 = &B[0]+1 = &B[1]                        第二个元素地址*(p[1]) = *(p[1]) =*(*(p+1))= *(*(&A+1))             越界(px+3)[2] = *(px+3+2)= *(px+5) = *(B+5)= B[5](*px)[3] = (*B)[3] = *(*B+3)= *(*&B[0]+3) = *(B[0]+3)p[0] =*(p+0)= *p = *(&B) = B= &B[0]*(px+1) = *(B+1) = B[1]

其他指针内容推导看:

 第五篇,c语言中的数组和指针定义及其特别重要的运算关系。_array size missing in 's-CSDN博客

第 七篇,二维指针和二维数组知识讲解。_二维指针怎么定义-CSDN博客

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

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

相关文章

【学术会议】第三届神经计算青年研讨会 学习笔记

第三届神经计算青年研讨会 学习笔记 会议时间:2024-1-6至2024-1-7 会议地点:电子科技大学 会议介绍: 为提升我国神经计算⻘年研究队伍的学术⽔平和国际影响⼒,研讨会主题涵盖:神经系统建模与模拟、脑机接⼝与类脑智能、…

探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty

目录 前言 Spring框架 Spring MVC框架 Spring Boot框架 MyBatis框架 Netty框架 结语 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty,希…

程序员离职后,居然发现一个绝佳的私活渠道...

今天,给大家推荐一些用Python爬虫做私活的渠道! 先给各位还不熟悉Python爬虫的朋友介绍一下! 可以短时间获得大量资料~ 可以进一步数据分析 当然也可以获得收益! 学会Python爬虫以后,还可以通过各种渠道(…

SAP 获取物料/批次/订单的特性值(学习一)

1、事务码 MSC1N、MSC2N、MSC3N 2、常用表 MCH1、MCHA、AUSP、MCH*开头的几个 3、批次 1、创建批次 BAPI:BAPI_BATCH_CREATE 2、修改批次 BAPI:BAPI_BATCH_CHANGE 3、删除批次 BAPI:BAPI_BATCH_DELETE 4、获取批次明细 BAPI&…

23种设计模式精讲,配套23道编程题目 ,支持 C++、Java、Python、Go

关于设计模式的学习,大家应该还是看书或者看博客,但却没有一个边学边练的学习环境。 学完了一种设计模式 是不是应该去练一练? 所以卡码网 针对 23种设计,推出了 23道编程题目,来帮助大家练习设计模式,地…

零代码实现接口自动化测试-RF框架实践

robotframework是一款关键字自动化测试框架,可能做各种类型的自动化测试。本文介绍通过 robotframework 来实现接口测试。 安装接口请求的第三方库 pip install robotframework-requests 在python安装目录的Lib\site-packages可以看到 接口关键字基础 robotfram…

CHS_03.1.3.3+系统调用

CHS_03.1.3.3系统调用 系统调用什么是系统调用,有何作用?系统调用又和普通的库函数的调用又有一定的区别为什么系统调用是必须的系统调用 按功能分类 可以分为这样的一些系统调用系统调用过程 这个小节的全部内容 系统调用 相关的知识 我们会为大家介绍什…

在visual studio中调试时无法查看std::wstring

1.问题 在调试的时候发现std::wstring类型的变量查看不了,会显示(error)|0,百思不得其解。 2.解决方法 参考的:vs2015调试时无法显示QString变量的值,只显示地址_vs调试qstring的时候如何查看字符串-CSDN博客 在工具/选项/调试…

Q-BENCH: A BENCHMARK FOR GENERAL-PURPOSEFOUNDATION MODELS ON LOW-LEVEL VISION

继续分享Q系列文章,今天分享Q-BENCH。 简单来说,作者对MLLMs在lowlevel领域中的评价提出了一个测试基准,主要分三点进行讲述。 有点类似于综述,显然作者团队在MLLM的lowlevel领域属于开山之作了。 第一个基准叫感知Perception 简…

Python从入门到网络爬虫(OS模块详解)

前言 本章介绍python自带模块os,os为操作系统 operating system 的简写,意为python与电脑的交互。os 模块提供了非常丰富的方法用来处理文件和目录。通过使用 os 模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强…

论文阅读《Generalizing Face Forgery Detection with High-frequency Features》

高频噪声分析会过滤掉图像的颜色内容信息。 本文设计了三个模块来充分利用高频特征, 1.多尺度高频特征提取模块 2.双跨模态注意模块 3.残差引导空间注意模块(也在一定程度上体现了两个模态的交互) SRM是用于过滤图像的高频噪声 输入的图…

【C++期末】酒店住宿信息管理系统(含easyX)

诚接计算机专业编程作业(C语言、C、Python、Java、HTML、JavaScript、Vue等),如有需要请私信我,或者加我的企鹅号:1404293476 本文资源:https://download.csdn.net/download/weixin_47040861/88725363 目录 1.题目要求 2.实现效…

Vue3:Axios配置及使用

Axios官方 一、安装: //使用 npm: $ npm install axios//使用 bower: $ bower install axios//使用 yarn: $ yarn add axios 在package-lock.json文件可以查看axios版本 二、配置: milliaAxios.js 配置axios import axios from axios // 创建一个 ax…

element的Table表格组件树形数据与懒加载简单使用

目录 1. 代码实现2. 效果图3. 解决新增、删除、修改之后树节点不刷新问题。&#xff08;[参考文章](https://blog.csdn.net/weixin_41549971/article/details/135504471)&#xff09; 1. 代码实现 <template><div><!-- lazy 是否懒加载子节点数据 --><!-…

美信科技盘古信息智能车间项目成功验收,打造电子元器件数字化工厂标杆

作为一家深耕于磁性元器件领域近二十年的制造企业&#xff0c;广东美信科技股份有限公司&#xff08;以下简称“美信科技”&#xff09;始终秉承着“为电磁赋能&#xff0c;创工业至美”的企业使命&#xff0c;为中国制造卓越发展贡献力量。在当今数字化时代&#xff0c;制造企…

【C++】深入了解构造函数之初始化列表

目录 一、再谈构造函数 1、引入 1&#xff09;构造函数体赋值 2&#xff09;不同成员变量赋值 2、初始化列表 一、再谈构造函数 1、引入 1&#xff09;构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值…

世邦spon IP网络对讲广播系统任意文件上传漏洞

产品介绍 世邦通信IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 漏洞描述 spon IP网络对讲广播系统存在任意文件上传漏洞&#xff0c;攻击者可以通过构造特殊请求包上传恶意后门文件&#xff0c;从…

深入理解 Flink(一)Flink 架构设计原理

大数据分布式计算引擎设计实现剖析 MapReduce MapReduce 执行引擎解析 MapReduce 的组件设计实现图 Spark 执行引擎解析 Spark 相比于 RM 的真正优势的地方在哪里&#xff1a;&#xff08;Simple、Fast、Scalable、Unified&#xff09; DAG 引擎中间计算结果可以进行内存持…

掌握设计模式:深入了解命令模式的优雅调度与行为解耦

命令模式是一种行为设计模式&#xff0c;其目的是将请求发送者和接收者解耦&#xff0c;从而允许发送者发送请求&#xff0c;而无需知道请求的具体处理方式。在命令模式中&#xff0c;请求被封装为一个对象&#xff0c;这个对象包含了执行请求所需的所有信息&#xff0c;包括调…

解析器:request.body、request.POST、request.data

request.POST与request.body&#xff1a; django中的request.POST只能取到Content-Type(请求头)为application/x-www-form-urlencoded(form表单默认格式)的数据&#xff0c;如果请求头为application/json(json格式)&#xff0c;multipart/form-data(文件)等格式无法取到&#x…