首页 > 其他分享 >地址&a和首地址&a[0]的区别

地址&a和首地址&a[0]的区别

时间:2023-04-25 09:22:45浏览次数:30  
标签:p2 p1 区别 元素 long 地址 数组

main(){
    long  a[4] = {1, 2, 3, 4};
    long  *p1=(long *)(&a+1);
    // long  *p1=(&a+1);//整个数组地址的下一个long数组的首地址,即存储整个数组a的最后一个字节的下一个字节内存的地址
    // long  *p1=(&a[0]+1);//数组第1个元素地址的下一个long的元素首地址,即数组第2个元素的首地址
    // long  *p1=(long*)(&a[0]+1);//同上
    long  *p2=(long *)((long)a+1);
 
    printf("%lx\n", p1[-1]);
    printf("%lx\n", *p2);
}

  

(&a+1)和(&a[0]+1)中的1不同,前者的是整个数组的长度,后者是数组元素数据类型的长度

标签:p2,p1,区别,元素,long,地址,数组
From: https://www.cnblogs.com/xuweihui/p/17351615.html

相关文章

  • 一个神奇的小工具,让URL地址都变成了"ooooooooo"
    发现一个很有创意的小工具网站,如封面图所示功能很简单,就是将一个URL地址转换为都是ooooooooo的样子,通过转换后的地址访问可以转换回到原始地址,简单流程如下图所示。转换的逻辑有点像短链平台一样,只不过这个是将你的URL地址变的很长长长长,但是看着都是ooooooooo,很好奇是如何实现......
  • vue2源码-十四、computed和watch的区别
    computed和watch的区别computed和watch的相同点。底层都会创建一个watcher(用法的区别:computed定义的属性可以在模板中使用,watch不能在视图中使用)computed默认不会执行只有取值的时候才会执行内部会维护一个dirty属性,来控制依赖的值是否发生变化。默认计算属性需要同......
  • Java中Runnable和Callable的区别 Runnable接口
    Callable接口从Java1.0开始,它是java.lang包的一部分从Java1.5开始,它是java.util.concurrent包的一部分。Runnable接口不能返回计算的结果。Callable接口可以返回一个任务的并行处理的结果。Runnable接口不能抛出一个有检查的异常。Callable接口可以抛出一个有检查的异常。......
  • nginx - 反向代理tcp地址
    在http同级添加红色部分即可#tcp配置stream{server{listen9101;proxy_pass127.0.0.1:8080;}}.........http{......}stream的端口不可与http共用,需要单独占用一个新的......
  • Java中null和“”的区别
    null和空字符串('')虽然都是没有任何内容,但是null却输出空指针异常,因为堆内存中根本就没有这个东西。他们的区别可相当大,虽然都是没有信息,但是null代表堆内存中根本没有这个东西,这个对象不存在,怎么执行indexof操作?空字符串虽然没有信息,但是是有内存空间的,所以null与空字符串主要......
  • useMemo, useCallback, useEffect 三者区别
    useMemo父组件将一个【值】传递给子组件,若父组件的其他值发生变化时,子组件也会跟着渲染多次,会造成性能浪费;useMemo是将父组件传递给子组件的值缓存起来,只有当useMemo中的第二个参数状态变化时,子组件才重新渲染useMemo便是用于缓存该函数的执行结果,仅当依赖项改变后才会重......
  • Problem D: IP地址合法性和网络类别检查
    1defIslegal(a):2ip=list(map(int,a))3flag=0#标志是否合法4if0<=ip[0]<=255:5if0<=ip[1]<=255:6if0<=ip[2]<=255:7if0<=ip[3]<=255:8......
  • Problem E: 计算网络地址
    1defcalculate(m,n):2ans=[]3a=m.split('.',3)4b=n.split('.',3)5ip=list(map(int,a))6mask=list(map(int,b))7foriinrange(4):8x=ip[i]&mask[i]9ans.append......
  • 命令执行中cat 和tac的区别
    命令执行中cat和tac的区别导引在最近的一道简单的命令执行题目中当使用?c=system('catf');时,发现并不能在网页上显示内容,而如果使用?c=system('tacf');时,内容就能显示出来分析 正则过滤了flag,我们可以使用通配符'*'或者匹配符'?'绕过c?=syetem('ls');//查看一下文......
  • spring boot 过滤器、拦截器的区别和使用
    区别:一、过滤器与拦截器的对比1.使用范围不同:过滤器是基于Servlet,而拦截器是基于Spring的,Spring框架底层又离不开Servlet,所以过滤器也能在Spring体系中使用。2.使用资源不同:拦截器有Spring的支持,能够方便的向容器中注册对象和使用对象,但是过滤器就不能。3.使用场景不同:灵活性上......