int *pa = NULL;
int *pb = pa + 15;
printf("%x
", pb);
char *pca = NULL;
char *pcb = pca + 15;
printf("%x
", pcb);
short *psa = NULL;
short *psb = psa + 15;
printf("%x
", psb);
上面代码的结果是:
3c
f
1e
分析:
int型指针,每次加1会向后移动一个int大小的距离,在32位情况下,移动32bit,即4个字节。
pa + 15,即向后移动了15个int的距离,即15 * 32 bit = 15 * 4字节
指针中数字是记录字节数的,故pb = 60 = 3c (16进制)
其他分析类似。