数据在内存中的存储——练习1

news2024/12/26 10:36:58

题目:

int main()
{
  int a[4] = { 1,2,3,4 };
  int* ptrl = (int*)(&a + 1);
  int* ptr2 = (int*)((int)a + 1);
  printf("%x,%x",ptr1[-1], *ptr2);
  return 0;
}

思路分析:

int* ptrl = (int*)(&a + 1);

ptr1[-1]

  • &a表示的是整个数组a的地址,而&a+1表示的是加上一个数组的字节总数后的地址。
  • 经过了int*后强制转化为了int*类型的指针,并且赋值交给了ptr1
  • 而后ptr[-1]可以转化为*(ptr1+(-1))也就是*(ptr1-1),而ptr1内存储的是被强制变为(int*)的(&a+1)的地址位置,所以-1变为了减去一个int类型的字节数,也就是一个元素,最后算出的答案是4

可参考http://t.csdn.cn/NeYUY 

 

  int* ptr2 = (int*)((int)a + 1);

  • 和大小端有关!
  • 原先的a是int*类型,被强制转化为了int类型
  • 且a是地址,被转化后,地址变成了一个int的类型的地址
  • 原先的地址加1是加四个字节(因为是int*类型的,所以加1等于加4个字节,表示下一个元素)
  • 而在强制转化后的+1就是地址物理数据上面的+1就相当于是加了一个字节的地址,而在内存块中展示的数据是16进制,也就是说从上图中的01位置到了01后面的00位置
  • +1后,同时也是一个地址
  • 在使用int*强制转化,所以又变成了一个指针, 而后在*就表示往后在拿三个字节
  • 同时打印出来就与大小端有关了

因为Vs编译器是小端,所以如上图所示,最后打印出来则是02 00 00 00 

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

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

相关文章

Rapid普通版DVSSL

Rapid普通版DVSSL,是一种单域名SSL证书,很多人买的平台,比如阿里云、腾讯云可能比较贵。 所以公布一下目前Gworg售价是:190元/年,包括技术支持等其它服务。 1、可以帮助域名认证。 2、可以帮助配置SSL证书。 3、有…

ChatGPT AIGC 一分钟列举10个Xlookup案例,快速掌握

Xlookup函数是Excel新版本中的新出的一个函数功能涵盖Vlookup,Hlookup,index+match等相关功能。 `XLOOKUP` 是 Excel 中的一个功能强大的查找函数,它用于查找和返回一个值在数组或范围中的对应值。`XLOOKUP` 函数可以替代 `VLOOKUP` 和 `HLOOKUP`,并提供了一种更直观和灵活…

堆与栈的区别

OVERVIEW 栈与堆的区别一、程序内存分区中的堆与栈1.栈2.堆3.堆&栈 二、数据结构中的堆与栈1.栈2.堆 三、堆的深入1.堆插入2.堆删除:3.堆建立:4.堆排序:5.堆实现优先队列:6.堆与栈的相关练习 栈与堆的区别 自整理,…

重庆两融利率最低给到多少,利率可以调整吗?

​ 在金融市场中,融资融券是投资者常用的一种加杠杆的金融手段。在重庆地区,融资融券也是广泛应用的投资方式。融资是指投资者向券商借入资金进行股票交易,而融券则是指投资者向券商借入股票进行卖出交易。这两个交易方式都需要支付利息费用…

学习记忆——图像篇——图像记忆

一、图像记忆原理 我们要记忆的内容一般包括图像、声音、文字和 数字这几种,按由易到难的顺序将它们排列: 图像——声音——文字——数字 记忆材料 图像 二、超级记忆的基本方法 记忆的三种类型: 1、瞬间记忆 2、短期记忆 短效记忆、长效记…

LED显示屏控制软件发展历程

LED显示屏控制软件的发展历程经历了多个阶段,从最初的简单控制到今天的复杂、高度定制化的解决方案。免费提供户外led显示屏解决方案。 以下是LED显示屏控制软件的主要发展历程: 早期单机控制: 早期的LED显示屏控制软件通常是基于单台计算机的…

smallWhiteDot Tech Suppor

Preview mail: 352056038qq.com

【测试开发】 测试题总结

祝天天开心 文章目录 1. 测试用例编写2. 如何对bug进行描述3. bug状态转换4. 测试人员和开发人员产生争执5. 登录功能测试用例设计6. 测试生命周期7. 1. 测试用例编写 编写水杯的测试用例 注意,测试用例有一个万能公式 功能测试性能测试页面测试安全性测试兼容性测…

【FAQ】视频监控管理平台/视频汇聚平台EasyCVR安全检查相关问题及解决方法3.0

智能视频监控系统/视频云存储/集中存储/视频汇聚平台EasyCVR具备视频融合汇聚能力,作为安防视频监控综合管理平台,它支持多协议接入、多格式视频流分发,视频监控综合管理平台EasyCVR支持海量视频汇聚管理,可应用在多样化的场景上&…

重庆电建:数据中台建设探索与实践

“数字中国”建设浪潮下,强化数据能力、激发数据价值成为各行各业实现高质量发展的重要抓手和关键引擎。然而,确保数据质量、一致性和充分利用其价值,对中大型企业而言,依然具有挑战。数据中台,能够为这些难题提供有效…

Altium Designer如何查看制定了哪些快捷键?

随着时代高速发展,Altium Designer(AD)、Allegro、Pads等是全球主流的三大EDA软件,因此越来越多工程师被要求学习这些软件,在使用EDA软件设计PCB过程时,熟悉和合理配置快捷键是提高工作效率的关键之一&…

Cesium 地理坐标系和投影坐标系

Cesium 地理坐标系和投影坐标系 投影坐标系墨卡托投影(Mercator projection)高斯-克吕格投影(Gauss-Kruger)UTM投影(Universal Transverse Mercator)网络墨卡托投影(Web Mercator) 地…

​LeetCode解法汇总2596. 检查骑士巡视方案

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 骑士在一张…

接口测试 —— Requests库GET请求

Requests库GET请求是使用HTTP协议中的GET请求方式对目标网站发起请求。 (不带参数的GET请求请看上一篇文章的练习) 1、Requests库待参数的GET请求 使用Get方法带参数请求时,是params参数字典,而不是data参数字典。data参数字典…

苹果2023发表会:四款产品一次看完

本次新品发布会中,苹果更新了Apple Watch和iPhone两款产品。包含Apple Watch S9、Apple Watch Ultra 2,以及iPhone 15 / iPhone 15 Plus 和高阶款的iPhone 15 Pro / iPhone 15 Pro Max。 以下为你汇整了2023 苹果秋季发布会( iPhone 15 发表…

半夏威风博客 vue+spingboot生成二维码小系统

概述 前台输入框,进行录入信息,进行提交,即可生成包含你信息的二维码 详细 半夏威风博客 vuespingboot生成二维码😎小系统 嗨!大家好!好久不见,想不想我哦 台词不能忘:你愿不愿…

linux os系统nginx版本升级

Nginx 查看nginx版本 rpm -qa | grep nginx下载地址: https://nginx.org/en/download.html, 下载linux stable稳定版本。 解压: tar -xvf nginx-1.22.0.tar.gz编译: //如果不知道nginx原目录在哪,用whereis 命令查…

【编程实践】利用pcl实现点云凸包点生成

1 运行结果 生成的凸包点与原点云的可视化 2 代码实现 // convex hull#include <pcl/point_types.h> #include <pcl/io/pcd_io.h> #include <pcl/io/vtk_io.h> #include <pcl/surface/convex_hull.h> #include <pcl/visualization/pcl_visualize…

【pythonflask-1】简单实现加减乘除输入界面

app.py import flask from flask import Flask, render_template, request # 计算精确的浮点结果&#xff0c;float加法也计算不出来 from decimal import Decimalapp Flask(__name__)app.route(/) def home():return render_template(index.html)app.route(/calculate, meth…

【rgbd_benchmark_tools】TUM RGBD数据集基准测试工具使用调试记录,SLAM评估

cgmcgm:~/文档/rgbd_benchmark_tools$ /bin/python /home/cgm/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools/evaluate_ate.py Traceback (most recent call last):File "/home/cgm/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools/evaluate_ate.py", li…