有趣的指针

来源:互联网 发布:百胜软件单机版 编辑:程序博客网 时间:2024/04/30 14:09
#include<stdio.h>int main(){int a[5] = {1,2,3,4,5};//数组在内存中开辟的空间是连续的 a 和&a的的值相同,取得是首元素地址的值 但意义不同 &a是取整个数组的地址         int *ptr1 = (int *)(&a+1);  //加1是加整个数组的长度 ptr1指向了5后边的位置        int *ptr2 = (int *)((int)a + 1);//把a的首地址转化成整型再加1相当于ptr2向后指了一个字节 01 00 00 00 02 00 00 00 03 00 00 00 ...//每个字节对应一个地址        printf("%d\n%x\n",ptr1[-1],*ptr2);return 0; }

输出结果为

5

2000000

0 0
原创粉丝点击