数组 指针 地址 加减 转换
2007-12-04 23:25
246 查看
int a[5]={1,2,3,4,5};
int *ptr1=(int *)(&a+1); //&a值于a一样, 但&a是指向数组的指针(指针的指针),&a+1指针增加了20(4*5)
int *ptr2=(int *)((int )a+1); //(int )a+1 指针增加了1
printf("%x,%x/n",ptr1[-1],*ptr2); ptr1[-1] //指针减少了4
printf("%p,%p/n",a,&a);
输出 5,2000000
int *ptr1=(int *)(&a+1); //&a值于a一样, 但&a是指向数组的指针(指针的指针),&a+1指针增加了20(4*5)
int *ptr2=(int *)((int )a+1); //(int )a+1 指针增加了1
printf("%x,%x/n",ptr1[-1],*ptr2); ptr1[-1] //指针减少了4
printf("%p,%p/n",a,&a);
输出 5,2000000
相关文章推荐
- C语言数组和指针的理解_在取地址运算上的操作_指针加减操作_a 和&a 的区别
- 数组与指针的转换,特殊的字符数组
- 数组的首地址,数组名取地址,地址的强制转换为int
- 彻底搞清C/C++中一维数组,二维数组,指针,数组指针和指针数组以及指向指针的指针,行地址和列地址之间的关系
- 图解数组指针与多维数组(附:为什么指针加一,地址不一定加一)
- 彻底搞清C/C++中一维数组,二维数组,指针,数组指针和指针数组以及指向指针的指针,行地址和列地址之间的关系
- 数组、指针和字符串:指针变量的声明、地址相关运算--“*”和“&”
- 数组与指针间的转换浅析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- 多维数组的指针类型转换和参数传递
- 数组指针、指针数组、地址的强制转换内存布局
- VS2008中CString对象与char型数组(或字符指针)间的转换
- 指针版的PStash(用一个void指针数组, 来保存存入元素的地址) 附模板化实现 p321
- 二维“数组”转换成二维“指针”
- 嵌入式开发第6天(指针,解引用和取地址,数组之间的地址差值,gdb)
- C语言 内存分配 地址 指针 数组 参数 实例解析
- 指针和数组的转换
- 数组名为常指针,与数组第一个元素地址相同
- 一个数组就是一个地址,一个指针就是一个地址的地址
- 派生类地址比基类地址少4(子类与基类指针强行转换的时候,值居然会发生变化,不知道Delphi BCB是不是也这样) good