指针与数组

void main()

{

  int a[5]={1,2,3,4,5};

  int *ptr1=(int*)(&a+1);

  int *ptr2=(int*)((int)a+1);

  int *ptr3=(int*)(a+1);

  int *ptr4=a;

  

  //假设数组a的开始地址为0x1000 0000

  int tmp=*(ptr1-1);      // tmp=5

  tmp=*ptr2;         // tmp=0x1000 0001

  tmp=*ptr3;         // tmp=2

  tmp=ptr4[1];        // tmp=2

}

 

解释:

1. 数组名表示数组首元素首地址;

2. 指向同一数组的元素可以的操作有:减、等于、赋值;加、乘、除对指针无意义

 

posted @ 2015-04-18 10:28  hy1hy  阅读(79)  评论(0编辑  收藏  举报