首页 > 代码库 > 【C语言】两个指针(地址)相减

【C语言】两个指针(地址)相减

两个指针相减,为两个指针之间间隔这两个指针类型的数目。

如:int *p,*q;

p-q=(p地址-q地址)/sizeof(int)

#include <stdio.h>int main(){    int a[9]={1,2,3,4,5,6,7,8,9};    char  *p,*q;    int *p2,*q2;    p=(char*)a;    q=(char*)&a[2];    printf("p=%08X q=%08X a[%d]=%d\n",p,q,q-p,a[q-p]);    //结果为:x,x+8,8/sizeof(char),a[8]=9    p2=a;    q2=&a[2];    printf("p2=%08X q2=%08X a[%d]=%d\n",p2,q2,q2-p2,a[q2-p2]);    //结果为:x,x+8,8/sizeof(int),a[2]=3    getchar();    return 0;}