数组名+1和数组名+1的区别
数组名和&数组名区别
#include <stdio.h>int main()
{int a[5] = {1,2,3,4,5};int *ptr = (int *)(&a + 1);printf("%d,%d,%d\n",*(a + 4),*(ptr - 1),*ptr); // 2 5 为什么是5printf("数组a[4]的地址%p,(ptr-1)地址%p, ptr的地址%p",(a + 4),(ptr - 1),ptr); //return 0;
}
a + 1 是在数组内平移一个数据类型大小
&a + 1是在数组末尾进行加一个数据类型的大小,偏移的是整个数组的大小。
这行代码:int ptr = (int )(&a + 1)。首先,取地址符 “&” 对 a 求地址,得到的是一个指向 a 的指针,它是一个数组指针,类型为 int ()[5]。接着,将这个指针加上 1,相当于将指针指向了数组 a 的末尾后的位置,即指向了一个未定义、无效的内存区域。最后,将这个指针强制转换为 int 类型的指针赋值给 ptr 变量。
然后,在这行代码中:printf(“%d,%d\n”,*(a + 1), (ptr - 1)),我们使用指针和数组下标操作来访问数组元素。(a + 1) 表示数组 a 中第二个元素的值,即 2。接着我们来看一下 *(ptr - 1) 的值。由于 ptr 指向的是 a 数组之后的一个位置,所以 ptr-1 指向数组 a 的最后一个元素。因此 *(ptr - 1) 就表示数组 a 的最后一个元素的值,即 5。
所以,这行代码的输出结果是 2,5。
#include <stdio.h>int main(int argc, char *argv[])
{int array[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};int (*parray)[4] = array; //数组指针int *ptr = (int *)(&array + 1);int *ptr2 = (int *)(&array + 2);printf("值%d,%d,%d\n",array[2][3],*(ptr-1),*(ptr2 - 13));printf("array[2][3]=%p,ptr=%p,ptr2=%p\n",(*(array + 2) + 3),(ptr - 1),(ptr2 - 13));printf("array的大小%d\n",sizeof(array)); return 0;
}
除了以下两种情况,所有的数组名都表示数组首元素的地址。
1、sizeof(数组名),计算整个数组的大小。sizeof内部单独放一个数组名,数组名表示整个数组;
2、&数组名,取出的是数组地址。&数组名,数组名表示整个数组,进行加减操作,是偏移整个数组的大小。
相关文章:
数组名+1和数组名+1的区别
数组名和&数组名区别 #include <stdio.h>int main() {int a[5] {1,2,3,4,5};int *ptr (int *)(&a 1);printf("%d,%d,%d\n",*(a 4),*(ptr - 1),*ptr); // 2 5 为什么是5printf("数组a[4]的地址%p,(ptr-1)地址%p, ptr的地址%p",(a 4)…...
开放原子训练营(第三季)inBuilder低代码开发实验室初体验
一、活动介绍 开放原子训练营开启inBuilder低代码实验室活动。无论您是计算机行业相关从业者、低代码开发爱好者还是普通用户,都可以基于inBuilder低代码开发平台社区版(基于UBML开源项目的一个可以广泛使用的发行版),体验向导式、…...
sql数据定义语句(cascade,set,null,no action的区别)
(一)ADD 基本格式: ALTER TABLE <表名> ADD 新属性名 新属性类型 例:alter table s1 add tele char(12):增加一个电话号码(tele)属性 注: 新增的属…...
Java进程(基础)
基本概念 1、进程:程序的执行过程 2、线程:一个进程可以有单个线程也就是我们说的单线程,还可以有多个线程也就是我们说的多线程, 线程 1、当一个类继承了Thread类就可以当成一个线程用 2、我们会重写run方法写上我们自己的业务…...
Android之 Activity活动详解
一 四大组件 1.1 Activity组件,它一个单独的窗口,程序流程都必须在Activity中运行。 1.2 service组件,用于在后台完成用户指定的操作。 1.3 content provider组件,会为所有的应用准备一个内容窗口,并且保留数据库、…...
车载软件架构——闲聊几句AUTOSAR BSW(五)
我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 我们并不必要为了和谐,而时刻保持通情达理;我们需要具备的是,偶尔有肚量欣然承认在某些方面我们可能会有些不可理喻。该有主见的时候能掷地有声地镇得住场…...
APP图标尺寸规范一文了解清楚
在进行图标设计前,熟知手机 app 图标尺寸规范,能更好地去针对不同平台设计出更极致的图标。当前智能手机系统主要以 iOS 及 Android 为主,APP 图标是产品给用户的第一印象,图标视觉设计的美感与吸引力,与用户是否选择下…...
写给程序员Android Framework 开发,
前言 在 Android 开发者技能中,如果想进大厂,一般拥有较好的学历可能有优势一些。但是如果你靠硬实力也是有机会的,例如死磕Framework。Framework 知识广泛应用在Android各个领域中,重要性显而易见。 成为一名Android Framework…...
html实现一个一闪一闪的按钮,CSS实现一个一闪一闪的按钮,Css闪烁点标,css设置按钮层次感,css按钮美化,CSS按钮动画过渡,CSS按钮添加阴影
效果 动态 静态 实现 底部多加了几个过渡按钮 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>#app {margin: 2% auto;text-align: center;}.lay-btn-box {position: relative;display: …...
品优购项目学习记录04--列表页
文章目录 1.品优购项目列表页制作准备工作2.列表页header和nav修改2.1 秒杀logo的制作2.2 导航栏nav修改 3.列表页主体sk_container 1.品优购项目列表页制作准备工作 1.列表页面是新的页面,我们需要新建页面文件list.html 2.因为列表页的头部和底部基本一致&#x…...
script标签type值application/json,importmap和module
type(默认text/javascript) 该属性定义 script 元素包含或src引用的脚本语言。属性的值为 MIME 类型(媒体类型); 如果没有定义这个属性,脚本会被视作 JavaScript。 如果 MIME 类型不是 JavaScript 类型&a…...
基于ArcGIS实现陕西省1:250000比例尺地形图分幅和编号
1地形图的分幅与编号原理 我国1:1000000地形图的分幅采用国际1:1000000地图分幅标准,而其他比例尺地形图分幅以1:1000000比例尺地形图为基准进行分幅。每幅1:1000000地形图范围是经差6、纬差4;纬度60~ 76之间经差12、纬差4;纬度76~ 88之间经…...
校园安全,一键报警主机助力保障
校园安全,一键报警主机助力保障 随着社会发展和科技进步,校园安全问题日益受到重视。如何保障师生们的安全成为了学校一项重要任务。而校园可视一键报警主机就是一种非常有效的安保设备。 这种报警主机集合了视频监控、安全防范、数据处理等多个功能&a…...
RabbitMQ养成记 (7. 消息可靠性投递)
消息可靠性 什么是消息的可靠性呢?? 简单来说就是 你的消息发放给 exchange 这个过程中 有可能丢失或者失败 这时候需要一个回调机制来监控 发送结果 必要时还要返回信息。 rabbitmq 给我们提供了两种: 首先是生产者到exchange发送过程的监…...
SpringBoot配置连接两个或多个数据库
在Spring Boot应用中连接多个数据库或数据源可以使用多种方式,下面介绍两种常用的方法: 1、使用Spring Boot官方支持的多数据源配置 Spring Boot提供了官方支持的多数据源配置,可以简单地配置和管理多个数据源。 需要在application.proper…...
Python面试题汇总:高效备战技巧
Python面试题汇总:高效备战技巧 一、基础知识准备1 语言特点及优缺点2 数据类型3 运算符4 控制流程语句5 函数 二、面向对象编程1 面向对象编程基础2 类的创建及继承3 魔术方法4 多态5 设计模式 三、常用数据结构与算法1 字符串、列表、字典、集合字符串列表字典集合…...
如何区分比特率、波特率和频谱带宽?
01、什么是比特率和波特率? 宽带网络里面提及的千兆即1000Mbit/s,一般描述的是我们家网络端口每秒最大可接收0、1比特(bit)的数量,即每秒可接收1000x106个比特。显而易见,比特率越高,每秒传送的…...
sklearn中的特征工程(过滤法、嵌入法和包装法)
目录 编辑特征工程的第一步:理解业务 Filter过滤法 编辑方差过滤 编辑- 相关性过滤 - 卡方过滤 - F检验 - 互信息法 编辑嵌入法(Embedded) 包装法(Wrapper) 特征工程的第一步:理解业务 如…...
Linux C/C++并发编程实战(0)谈谈并发与并行
作为并发编程的第一讲,比较轻松,我们先来谈谈什么是并发和并行。 并发(Concurrency)是指一个处理器同时处理多个任务。 并行(Parallelism)是指多个处理器或者是多核的处理器同时处理多个不同的任务。 并发…...
2023年5月天津/南京/成都/深圳CDGA/CDGP数据治理认证报名
6月18日DAMA-CDGA/CDGP数据治理认证考试开放报名中! 考试开放地区:北京、上海、广州、深圳、长沙、呼和浩特、杭州、南京、济南、成都、西安。其他地区凑人数中… DAMA-CDGA/CDGP数据治理认证班进行中,报名从速! DAMA认证为数据管…...
5分钟从图片到3D实物:开源神器ImageToSTL完全指南
5分钟从图片到3D实物:开源神器ImageToSTL完全指南 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left side. 项…...
AI接口文档生成已进入工业级阶段:2026奇点大会公布的7项实测指标颠覆传统DevOps流程
第一章:2026奇点智能技术大会:AI接口文档生成 2026奇点智能技术大会(https://ml-summit.org) 技术背景与行业痛点 随着微服务架构和API经济的深度演进,企业平均每年新增API数量超过1200个,但其中67%缺乏及时、准确、可执行的文档…...
MiniCPM-V-2_6电商应用实战:商品图多角度比对+卖点文案自动生成
MiniCPM-V-2_6电商应用实战:商品图多角度比对卖点文案自动生成 1. 引言:电商内容创作的痛点与解决方案 电商卖家每天都要面对一个头疼的问题:商品上架需要大量图片和文案。同一个商品要从不同角度拍摄,还要写出吸引人的卖点描述…...
生产刮刮卡定制制造商推荐
在当今的商业活动中,刮刮卡作为一种集抽奖、防伪与票务功能于一体的营销利器,被广泛应用于促销活动、刮奖卡、景区门票等众多场景。然而,市面上刮刮卡的质量参差不齐,存在防伪性差、可变数据印刷错位或重复、色差大等诸多问题。今…...
如何快速检测Windows热键冲突:Hotkey Detective完整解决方案指南
如何快速检测Windows热键冲突:Hotkey Detective完整解决方案指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...
揭秘LLM代码生成落地困局:5类典型业务场景的个性化适配路径(含可复用决策树)
第一章:智能代码生成个性化适配策略 2026奇点智能技术大会(https://ml-summit.org) 智能代码生成已从通用模板输出迈向深度个性化适配阶段。开发者背景、项目约束、团队规范与运行时环境共同构成多维适配边界,单一模型输出无法满足真实工程场景的差异化…...
MinGW-w64跨平台编译架构设计:实现高性能Windows原生应用开发的最佳实践
MinGW-w64跨平台编译架构设计:实现高性能Windows原生应用开发的最佳实践 【免费下载链接】mingw-w64 (Unofficial) Mirror of mingw-w64-code 项目地址: https://gitcode.com/gh_mirrors/mi/mingw-w64 MinGW-w64是一个开源项目,提供了一套完整的G…...
如何快速实现croc项目的测试自动化:完整GitHub Actions CI/CD配置指南
如何快速实现croc项目的测试自动化:完整GitHub Actions CI/CD配置指南 【免费下载链接】croc Easily and securely send things from one computer to another :crocodile: :package: 项目地址: https://gitcode.com/GitHub_Trending/cr/croc croc是一个简单…...
SAP AMDP实战避坑指南:从CDS Table Function到Procedure的完整配置流程
SAP AMDP深度实战:从CDS Table Function到Procedure的高效配置与避坑指南 当ABAP开发者需要在SAP HANA环境中实现高性能数据库逻辑时,AMDP(ABAP-Managed Database Procedures)已经成为不可或缺的技术选择。不同于传统的ABAP代码&…...
LeetCodehot100-34. 在排序数组中查找元素的第一个和最后一个位置
class Solution { public:int search(vector<int>& nums, int target){//>int left0,rightnums.size()-1;while(left<right){int midleft(right-left)/2;if(nums[mid]<target) leftmid1;else rightmid-1;}return left;}//[0, left-1] 中的所有元素都 < t…...
