标签:
有了前面 两篇 基础,下面我们可以更深入的来介绍c/c++(疑3) C语言指针与数组之间关系
指针就是指针,指针变量在32 位系统下,永远占4 个byte,其值为某一个内存的地址。指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到。
数组就是数组,其大小与元素的类型和个数有关。定义数组时必须指定其元素的类型和个数。数组可以存任何类型的数据,但不能存函数。
<pre name="code" class="cpp">int _tmain(int argc, _TCHAR* argv[]) { int a[4]={1,2,3,4}; int *ptr0 = (int*)(int)a;//01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 cc cc cc int *ptr1=(int *)(&a+1); int *ptr2=(int *)((int)a+1);//00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 cc cc cc cc int *ptr3 = (int *)((int)a+2);//00 00 02 00 00 00 03 00 00 00 04 00 00 00 cc cc cc cc 3c int *ptr4 = (int *)((int)a+3);//00 02 00 00 00 03 00 00 00 04 00 00 00 cc cc cc cc 3c d2 int *ptr5 = (int *)((int)a+4);//02 00 00 00 03 00 00 00 04 00 00 00 cc cc cc cc 3c d2 d8 int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); printf("%x,%x,%x,%x,%x,%x",ptr1[-1],*ptr2,*ptr3,*ptr4,*ptr5);//下一篇文章讲解 getchar(); /* a 0x00C4F810 &a[0] 0x00C4F810 &a 0x00C4F810 */ return 0; }
标签:
原文地址:http://blog.csdn.net/u010236550/article/details/44935867