关闭

数组指针应用

标签: 指针数组
111人阅读 评论(0) 收藏 举报
分类:
/*
   用数组指针,多种方式输出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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2978次
    • 积分:232
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论