69,373
社区成员
发帖
与我相关
我的任务
分享
int array[20]={
10,20,30,40,50,60,70,80,90,100,
110,120,130,140,150,160,170,180,190,200
};
printf ("%p, %p\n", & array, & array + 4);
printf ("%d\n", (& array + 4) - & array);
答:它们肯定不同。第一行是分别输出两个指针的地址,相减后是两个地址之间相差的字节数,和数组元素的类型有关;第二行是两个指针相减,得到的是它们间隔的数组元素数量,和元素的类型无关。#include <stdio.h>
int array[20]={
10,20,30,40,50,60,70,80,90,100,
110,120,130,140,150,160,170,180,190,200
};
int main() {
printf("0x%p,0x%p\n",&array[0],&array+4);//0x00403010,0x00403150
return 0;
}