int a[5]={1,2,3,4,5}; int *p=(int*)(a+1); printf(%d,*(p-1)); 答案为什么是5?
这个问题的关键是理解 &a a是一个数组名,也就是数组的首地址。对a进行取地址运算符,得到的是一个指向数组的指针!!!!这句话尤为重要!也就相当于int (*p) [5] = &a;p是一个指针,它指向的是一个包含5个int元素的数组!! 那么执行p+1后,p的偏移量相当于 p + sizeof(int) * 5 !! 而程序中强制将指针p转换成一个int* 那么 p -1 其实就是 p - sizeof(int)所以,p -1 指向了数组中得最后一个元素,也就是 5
转载于:https://www.cnblogs.com/diegodu/p/4572237.html
int a[5]={1,2,3,4,5}; int *p=(int*)(a+1); printf(%d,*(p-1)); 答案为什么是5?相关推荐
- int在c语言中的作用,C语言中int,Uint,uint16等有什么区别以及用处
C语言中int,Uint,uint16等有什么区别以及用处.在C中,既然有了int,为什么还要有uint?特别是uint16,uint32等又有什么用?他们有什么区别?" --------- ...
- c语言的数据类型有什么 long int,C语言的三种整型数据类型:INT SHORT INT和LONG INT...
int数据类型的位数为16位,short int数据类型的位数也是16位.而long int的位数为32位,可用来存储比较大的整数. short int和long int可以缩写为short和long ...
- Java实现float转换成int代码_Java中如何将float转换为long或int?(附代码)
本篇文章给大家带来的内容是关于Java中如何将float转换为long或int?(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在Java中,有三种方法可以将float转换 ...
- C#的(int) /int.Parse()/int.TryParse()/Convent.ToInt32()的区别--推荐使用Int.TryParse()
一.(int)变量名[强制类型转换]: 该转换方式主要用于数字类型转换,从int类型到long,float,double,decimal类型,可以使用隐式转换,但是从long类型到int类型就需要使 ...
- c语言的数据类型有什么 long int,C语言的三种整型数据类型:int、short_int和long_int...
int数据类型的位数为16位,short int数据类型的位数也是16位.而long int的位数为32位,可用来存储比较大的整数. short int 和 long int可以缩写为short 和 ...
- 无法解析构造函数‘Employee(int,java.lang.String,java.lang.String,int,com.kuang.pojo.Department)‘
前言:在写这篇博客的时候,本来博客名字打算叫:"在给Java伪造数据库里面的伪数据的相关字段插入数据时,插入失败,是什么原因导致的?",后来思前想后,还是决定直接拷贝使用编译器上面 ...
- java中将int转换float_在java中将float和double转换为int时有什么区别?
我用这些语句来测试 float f=4.35f; int i=(int)(f*100); System.out.println(i); double d=4.35; i=(int)(d*100); S ...
- int **a[3][4] 和 sizeof(a) 和 int(**)a[3][4]
BS的<C++编程>里面讲得很清楚,变量的申明,变量名称的后面部分比前面部分具有更强的约束力. 所以,如下变量声明: int **a[3][4]; 表示"int **" ...
- php 整数转换为32 位,PHP哈希函数返回一个整数(32位int)(PHP hashing function that returns an integer (32bit int))...
PHP哈希函数返回一个整数(32位int)(PHP hashing function that returns an integer (32bit int)) 目标是使用INT(不是BIGINT或ME ...
- int*类型和int类型_mysql8.0.19中在navicat客户端中int、bigint等类型设置长度保存后为0...
问题描述: 今天在将开发库(mysql版本号:5.7.24)的表结构和正式库(mysql版本号:8.0.19)表结构做比对的时候,发现大量表中字段不一致,初以为是切换到正式库时执行SQL报错了,后,手 ...
最新文章
- 从一个需求看问题的无限复杂化和简单化
- 互联网晚报 | 2月11日 星期五 | 小红书月活跃用户超2亿;小鹏汽车宣布拓展欧洲市场;贝壳首个青年公寓项目落地上海...
- 用户与计算机系统的交互换界面,人机交互期末PPT复习(GXNU李智老师)
- linux root所在目录,Linux下误删root目录
- mysql的%rowtype_Oracle %TYPE 和 %ROWTYPE 使用
- python创建一个空的dataframe_python - 创建一个空的Pandas DataFrame,然后填充它?
- mysql添加mcafee 审计插件
- 10个最新优秀手机应用界面设计实例
- python sqlserver 数据操作_python上手--python操作数据库
- 最常用20000英语单词表_家长最值得一看的文章如何培养孩子好的学习习惯!
- 腾讯云学生服务器搭建个人网站——配置web开发环境详细步骤
- office表格怎么冻结前两行_怎样冻结表格前两行(excel2003中怎么冻结行列标题)
- 已知圆柱半径求周长c语言,求圆柱体积和周长的c语言编写程序
- 20本父母必读的亲子教育书籍
- 2021年最新互联网大厂中秋礼盒PK!
- 买到招行CMP1一天赚90
- VBA 读写文本文件
- 律师要用到什么计算机技巧,【执业技巧】律师如何优雅地使用苹果电脑?这7款工具很有用...
- VMware中的虚拟机设置开启VT虚拟化 虚拟机中创建虚拟机
- asp.net中引用System.Web.UI.DataVisualization.Charting命名空间
热门文章
- Running 1 linux_yesterdaytodaytomorrow
- LeetCode 5381. 查询带键的排列
- c++笔记(8) 指针及动态内存管理
- c++学习笔记(4)
- 电子助力方向机控制模块_【技师投稿】使用道通MS908PRO更换宝马F20底盘方向机...
- Ubuntu Linux服务器安装JDK8
- Pytest之自定义mark
- 将多张连续的静态图转成gif动态图
- Web3.0网关Deeper Network计划于本月末在四个平台上进行IDO
- 征信报告上那些你不知道的事