看到一道题
#include<stdio.h>
void main()
{
short *p,*q;
short arr[15]={0};
p=q=arr;
p++;
printf("%d,",p-q);
printf("%d,",(char*)p-(char*)q);
printf("%d",sizeof(arr)/sizeof(*arr));
}
p q是指向地址的指针,随着数据类型的不同而产生的偏移量不同;
short类型大小是2字节,char类型大小是1字节;
++p是地址偏移量为2字节,但是对于short类型来说就是相差1,转化为char类型就是2;
sizeof是指数组的所占内存的大小=数据类型*个数;