【C语言】指针增减

    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进制)

其他分析类似。

原文地址:https://www.cnblogs.com/dplearning/p/4722504.html