c语言的数组的地址的表示方法
2013-11-07 00:13
162 查看
#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语言的数组的地址的表示方法
- Objective-c语言_用字符串方法和数组如何获取物理IP地址
- C语言数组地址【元素地址及数组地址获取方法区别】
- C语言,求数组中第二大值,两种方法.
- 数据结构之---C语言实现数组的顺序存储表示(可运行)
- Excel是最常用的办公软件。每个单元格都有唯一的地址表示。 比如:第4列表示为:“D”,第255列表示为“IU”。 事实上,Excel提供了两种地址表示方法,还有一种表示法叫做RC格式地址。
- C语言多维数组的地址
- C语言定义数组指针的三种方法
- C语言定义数组起始地址对齐方式(IAR C99 Kinetis K66)
- 【C语言】数组名&地址&地址中的值的访问
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言的数组名和对数组名取地址
- 《C++笔记》 Part8 一维、二维、三维数组的动态申请及用vector的表示方法
- 关于数组名的值,地址,表示以及强转等,有些绕的问题
- C语言实现在数组A上有序合并数组B的方法
- 详解Swift中对C语言接口缓存的使用以及数组与字符串转为指针类型的方法
- C语言中空格的表示方法
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言不定长数组及初始化方法
- 用指针表示数组的地址与值