码迷,mamicode.com
首页 > 编程语言 > 详细

C语言的指针移位问题

时间:2014-07-30 23:11:35      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   问题   代码   div   amp   

先贴代码

#include <stdio.h>

int main(void)
{
    double a[]={1.1,2.2,3.3};
    unsigned int b,c,d;
    b=&a[0]+1;c=&a[1];d=&a[2];
    printf("diff --  %d", c-b);
    return 0;
}

执行结果是

diff  --  0

这是32位的代码,所以可以用unsigned int类型来储存地址位。

 

由于a[0]是double类型,所以&a[0]+1的返回值是a[0]的地址向后移sizeof(double)个字节。

这样就导致了  &a[0]+1 == a+1 == &a[1] == (void *)a[0]+8  的结果。

 

C语言的指针移位问题,布布扣,bubuko.com

C语言的指针移位问题

标签:style   blog   color   io   问题   代码   div   amp   

原文地址:http://www.cnblogs.com/catmelo/p/3879028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!