首页 > 其他 > 详细

C关于指针的那点事

时间:2015-10-02 23:50:29      阅读:377      评论:0      收藏:0      [点我收藏+]

一,场景一

  int arr[4] = {10, 20, 30, 40};

    int (*pp)[4] = &arr;

    int* p = (int*)(pp + 1);

    NSLog(@"%d", *(p-2)); // 结果:30

技术分享

 

二,场景二

    

    int arr[4] = {10, 20, 30, 40};

    int (*pp)[4] = &arr;

    double* p = (double*)(pp + 1);

    NSLog(@"%d", *(int*)(p - 2)); // 结果:10

    

    int arr2[2][4] = {

        {10, 20, 30, 40},

        {11, 21, 31, 41}

    };

    

    int (*pp2)[4] = &arr2[1];

    NSLog(@"%d", *(int*)pp2); // 结果:11

    

    double* p2 = (double*)pp2;

    NSLog(@"%d", *(int*)(p2 + 1)); // 结果:31

    

    int* p2p = (int*)(arr2 + 1);

    NSLog(@"%d", *(p2p - 3)); // 结果:20

 

技术分享

 

C关于指针的那点事

原文:http://www.cnblogs.com/iOS771722918/p/4852879.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!