【C语言】指针增减

    int *pa = NULL;
    int *pb = pa + 15;
    printf("%x\n", pb);

    char *pca = NULL;
    char *pcb = pca + 15;
    printf("%x\n", pcb);

    short *psa = NULL;
    short *psb = psa + 15;
    printf("%x\n", psb);

上面代码的结果是:

3c

f

1e

 

分析:

int型指针,每次加1会向后移动一个int大小的距离,在32位情况下,移动32bit,即4个字节。

pa + 15,即向后移动了15个int的距离,即15 * 32 bit = 15 * 4字节

指针中数字是记录字节数的,故pb = 60 = 3c (16进制)

其他分析类似。

 

posted @ 2015-08-11 22:10  匡子语  阅读(233)  评论(0编辑  收藏  举报