WTS123456 发表于 2018-3-17 21:57:23

求指针的地址差问题

#include <stdio.h>

void main()
{
        int        array={1,2,3,4,5,6,7,8,9,0};
        int        *p1 =array;
        int        *p2 =&array;

        int        number = p2 -p1;

        printf("number = %d\n",number);


}

这个不应该是28吗??为什么答案是7

人造人 发表于 2018-3-17 22:05:52

为什么是28?

ba21 发表于 2018-3-17 23:51:10

这就是规定
http://blog.csdn.net/a2806005024/article/details/36422987

Martine 发表于 2018-3-18 11:05:06

p1 = a
p2 = a+7;
so
p2-p1 =7

WTS123456 发表于 2018-3-18 16:39:16

这里应该是编译器默认除了sizeof(int)

2289001949 发表于 2018-3-18 23:14:39

array+7是你数组第7个值的地址吗也就是array【7】的地址然后减去首地址不就是7
页: [1]
查看完整版本: 求指针的地址差问题