数组中某两元素的地址的差
来源:互联网 发布:淘宝登录页面网页制作 编辑:程序博客网 时间:2024/05/20 21:59
我们知道C语言中定义的数组如:
int a[5] = {1,2,3,4,5};
数组名 a 代表的就是数组的首地址 即 &a[0] , 数组中第n个元素的地址 = a + (n-1)*sizeof(int) .
那么当我们定义如下两个指针:
int *p, *q;p = &a[1];q = &a[3];并将数组中某两元素的地址分别赋给 p,q .显然
p的物理地址为 a+sizeof(int) = a + 4
q的物理地址为 a+3*sizeof(int) = a+12
那么当我们输出:
printf("%d\n", a[q - p]);将得到什么结果呢?运行结果如下图:
事实上,对于p和q的赋值语句还可以写成:
p = a + 1;q = a + 3;很显然的 a[q-p] 就表示a[2]了。但是这种两个指针的差也只有在同一数组中才能表示两元素的下标差。
倘若p,q指向的不是同一数组元素,即使它们所指向的地址在内存中的位置正好间隔一个数组元素,结果也是不确定的。
0 0
- 数组中某两元素的地址的差
- 指针表达式+1.对应的地址值却+4?/为什么两个数组元素的地址相减之差不为地址之差?
- 数组内两个元素的最大差
- 二维数组元素的地址
- 数组的首地址和数组首元素的地址
- 数组的首地址和数组首元素的地址
- C语言中,为什么指针表达式的值+1.对应的地址值却+4?/为什么两个数组元素的地址相减之差不为地址之差?
- 数组首地址和数组第一个元素的地址
- 重新组合两个数组,使得他们的元素差最小
- 1.2.9 数组中大小最接近的两个元素差
- 求数组中两个元素差的最大值
- 数组a元素的和与数组b元素的和之间的差最小
- 给定两个数组,交换它们的元素,使得两数组元素之和的差绝对值最小
- 通过交换两个数组的元素,使数组元素和之差最小
- 数组名地址和首元素地址的辨析
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- 相邻元素差的绝对值都是1,在这样的数组中找目标元素
- 妥协的战争
- mysql之replication配置
- 实习工作面试常问问题
- 利用淘宝云盘作为图床
- maven 发布 web 项目(分别使用 Jetty 和 Tomcat 作为容器)
- 数组中某两元素的地址的差
- Android 服务器之SFTP服务器上传下载功能
- 完美网络
- Android实现List<String>存储到SharedPreferences工具类
- Vector、ArrayList和Hashtable、HashMap数据结构(转)
- Xcode环境开发leveldb
- Android自定义控件View的探讨
- keil 配置超声波模块注意事项
- php 简单方式截取中文字符串