数组指针应用

来源:互联网 发布:涂银遮光布有毒吗 知乎 编辑:程序博客网 时间:2024/06/08 01:36
/*
   用数组指针,多种方式输出a[2]
*/
#include<stdio.h>#define L(a) sizeof(a)/sizeof(a[0])typedef int Arr_int[4];int main(){    Arr_int a={1,2,3,4};    Arr_int *p=&a;//数组指针,*p的数据类型是4个int长    printf("%d\n",p[0][2]);//先获取到a数组的访问权,在访问a中的相对于首地址偏移量为2的数,即为a[2];    printf("%d\n",*(p[0]+2));//先获取a的地址,然后在a的首地址+2,表示偏移2个地址到a[2],*()表示输出地址对应的值    printf("%d\n",(*p)[2]);//先获取a的地址,在利用[]的特性:指针+间接引用,输出a偏移2的地址的数值    printf("%d\n",p[1][-2]);//p偏移一个数组指针地址,4个int。0 1 2 3 4 5 6 7 8 p指向4的地址,0--3内存的是a数组的各个值,p左移两个int地址指向a[2]    printf("%d++++\n",*(*p+2));    printf("%d\n",*(p[1]-2));    printf("%d\n",p[2][-6]);    printf("%d\n",p[3][-10]);    printf("%d\n",*(p[2]-6));   /* printf("%d....\n",*(p[0]));    printf("%d-------\n",p[0]);    printf("%d---\n",(*p));    printf("%d******\n",&a);*/    return 0;}

0 0
原创粉丝点击