首页 > 其他分享 >看过这个,你可能更了解指针4

看过这个,你可能更了解指针4

时间:2024-11-18 21:56:34浏览次数:1  
标签:arr 看过 位中 元素 地址 了解 64 大小 指针

如图,我们先看以下问题

在稍微思考过后,先把你的答案记下来吧。
接下来我们分析

****1中

arr被单独放入sizeof中,表示整个数组,则计算整个数组的大小,
且sizeof计算的大小包含\0,则在sizeof看来数组arr有7个元素,
类型为char,7乘1=7

****2中

arr没有单独放入sizeof中,也没有与&结合,所以这里表示首元素地址,
+0表示跳过0个字节,则跳到首元素地址的位置,
而地址在32位中是4个字节大小,在64位中是8个字节大小

****3中

arr表示首元素地址,*表示解引用,
arr被解引用后便是首元素,
首元素为a,类型为char,
故大小为1

****4中

arr[1]与*(arr+1)同义,表示第2个元素,
第二个元素为b,类型为char,
故大小为1

****5中

arr与&结合,这里的arr表示整个数组,
故&arr表示整个元素地址,
地址在32位中是4个字节大小,在64位中是8个字节大小

****6中

&arr+1这种形式从运算符的优先级我们知道&的优先级高于+,
所以可以看做(&arr)+1,&与arr结合表示整个数组地址,
这样&arr则跳过了一整个数组大小,跳到了如图的位置,

而地址总归是地址所以在32位中是4,在64位中是8
****7中

&arr[0]表示首元素的地址,
+1则跳过了一个元素大小,跳到了如图位置

其实也就是跳到了a[1]的位置,求第二个元素地址的大小,
该地址在32位是4,在64位是8

****最后附上64位的运算结果
如图

end.

标签:arr,看过,位中,元素,地址,了解,64,大小,指针
From: https://www.cnblogs.com/CxstaR/p/18553777

相关文章

  • C语言 | 指针 | 野指针 | 数组指针 | 指针数组 | 二级指针 | 函数指针 | 指针函数
    文章目录1.指针的定义2.指针的加减运算3.野指针4.指针&数组&传参&字符数组5.数组指针&指针数组6.二级指针7.指针函数&函数指针&回调函数8.函数指针数组&指向函数指针数组的指针1.指针的定义指针是内存中一个最小单元的编号,也就是地址。平常口语中所......
  • 什么是JUPYTER?一文快速了解JUPYTER基础知识 Jupyter
    什么是JUPYTER?一文快速了解JUPYTER基础知识JupyterJUPYTER是一款开源的交互式计算环境,为数据科学家、研究人员和开发者提供了一个灵活且强大的平台,用于创建、共享和展示计算性工作。它最初由FernandoPerez于2014年推出,并得到了全球广泛的应用和认可。JUPYTER的名称源自三个核......
  • C++---智能指针和内存泄露
    文章目录智能指针**发展历史****C++11前****C++11引入的智能指针****智能指针的使用及原理**shared_ptr的循环引用**循环引用的场景**通过weak_ptr来解决shared_ptr的循环引用智能指针的模拟实现内存泄露内存泄露的概念和危害内存泄露分类如何检测内存泄露如何避免内存......
  • C题目:指针-将数组a中的n个整数按相反顺序存放
    题目:将数组a中的n个整数按相反顺序存放代码:#include<stdio.h>voidinv(int*a,intlen){inttemp,i,j,m=(len-1)/2;for(i=0;i<=m;i++){j=len-1-i;temp=a[i];a[i]=a[j];a[j]=temp;}}intmain(){intlen,*p,i,a[1......
  • cpp智能指针
      普通指针的不足new和new[]的内存需要用delete和deletel]释放。程序员的主观失误,忘了或漏了释放。程序员也不确定何时释放。普通指针的释放类内的指针,在析构函数中释放。C++内置数据类型,如何释放?new出来的类,本身如何释放?C++11新增三个智能指针类型uniqu......
  • 谷歌地图 | Places Insights API 推出预览版:深入了解某个区域,帮助用户做出更明智的决
    谷歌地图推出PlacesInsightsAPI,现已推出预览版。这款新API可让开发者超越简单的位置详细信息,更深入地了解用户探索的地点。通过利用GoogleMapPlatform的地点数据,开发者可以揭示定义社区个性的独特特征,包括餐厅、公园、娱乐场所等。CloudAce-谷歌云|谷歌云全球战......
  • 极限编程在项目管理中的应用,你了解吗?
    极限编程(ExtremeProgramming,XP)是一种敏捷软件开发方法论,强调通过持续的反馈、快速的迭代和强烈的团队协作来提升软件开发的效率和质量。虽然XP最初是针对软件开发过程设计的,但它的核心原则和实践也可以在项目管理中得到广泛应用。以下是极限编程在项目管理中的一些关键应用和作......
  • 全网最新最全的教育科研培训类AOI超过35.8万个,了解周边分布的各类学校,高校、职校、中
    全国教育科研培训类AOI数据概况教育科研培训类AOI:指单独占用一个地理区域或建筑的教育科研培训相关的AOI,在写字楼、居民住宅、景区、学校等类别AOI中的教育科研培训相关的场所,如果不是单独占用一个地理区域或建筑则不包含在上述教育科研培训类AOI中。全国范围数量:358000个......
  • 关于我重生到21世纪学C语言这件事——指针详解(3)
    人无完人,持之以恒,方能见真我!!!共同进步!!文章目录1.字符指针变量2.数组指针变量3.⼆维数组传参的本质4.函数指针变量5.函数指针数组6.转移表1.字符指针变量在指针的类型中我们知道有⼀种指针类型为字符指针char*;⼀般使⽤:intmain(){charch='w......
  • 一些Leetcode关于双指针的简单题解
    26.删除有序数组中的重复项给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k,你需要做以下事情确保......