c语言的数组的地址的表示方法
来源:互联网 发布:知乎怎么按点赞数排序 编辑:程序博客网 时间:2024/05/16 14:27
今天刚发现了c语言数组地址表示另一种不错的方法。这个方法跟指针结合起来,对于操作内存来说,非常方便。
#include<stdio.h>
int main(void)
{
int c[5] = {1,2,3,4,5};
int *ptr = (int *)(&c +1);
printf("%d %d\n", *(c +1), *(ptr-1));
}
上边的代码执行完毕后,会出现什么结果?
*(c+1),应该很明显: 2;
*(ptr-1),结果是: 5;
分析:
可以试一下一下代码:
printf( “%p\n”, c+5 );
printf("%p\n", &c[5]);
printf("%p\n", &c+1);
运行以上3条代码后,你就会惊奇的发现,它们输出的地址,完全一致。
也就是说, &c+1表示了该数组最后一个元素的下一个地址。,而&c 与 c 或者 &c[0] 一致,都表示该数组的首地址。
另外,&c+1 比c+5 和 &c[5]使用更方便: 它不必知道将要操作的数组的sizeof。
或许还有其他更简便的方法吧?
转载自:http://www.cnblogs.com/sophia0405/archive/2008/10/23/1317802.html
- c语言的数组的地址的表示方法
- C语言:二维数组的存储及地址表示
- c语言字符串数组的两种表示方法
- 求解c 语言里二维数组地址用表示方法
- C语言--对数组地址的解析
- C语言(数组的地址)
- C语言 数组的顺序表示与实现 数据结构
- C语言多维数组的存储表示和实现
- 数组的顺序表示和C语言实现
- c语言中数组arr的表示含义
- C语言多维数组的存储表示和实现
- 【C语言】数组名&地址&地址中的值的访问
- C语言获取文件夹地址的方法
- 图的数组表示方法
- “搞笑”的C数组5["abcdef"]表示方法
- c语言中不同格式的表示方法
- C语言中不同进制数的输入输出及表示方法
- 看C语言编码转换--------负数的二进制表示方法
- 项目管理心得:一个项目经理的个人体会、经验总结
- 2440串口接收数据同时将数据存储在SD卡中
- c语言变量中冒号
- OCP-1Z0-053-V12.02-174题
- iOS开发中nil和release的用法
- c语言的数组的地址的表示方法
- Android数据存储总结
- SAP FI未清项管理----初级探索
- 条件编译和存储管理
- ios开发之何时用delegate,何时用notification?
- java.lang.ClassNotFoundException: org.logicalcobwebs.proxool.ProxoolDataSource
- sh脚本异常 win-linux 文本格式问题
- GCD教程(一):基本概念
- Android设置布局背景为白色的三种方法