指针偏移量为指针的类型的大小,即基类指针指p向派生类时若p++,则p偏移了一个基类大小的地址,然后按照数据之间的相对位置进行间址访问。
C语言运算符优先级
#includeint main() { int a[3] = {2,7,8}; int* p;//p是一个指针 int j; p = a; j = *p++; //j = *p; p++指针偏移是基类型的大小,p指向a,p++指向a[0]的下一个元素 printf("a[0]=%d,j=%d,*p=%dn",a[0],j,*p); //a[0]=2,j=2,*p=7 return 0; }
#includeint main() { int a[3] = {2,7,8}; int* p; int j; p = a; j = (*p)++;//a[0]++或p[0]++ //j = *p; (*p)++; *p访问a[0]这个空间++,由2变成了3,p没动,指向空间内容变了 不能 printf("a[0]=%d,j=%d,*p=%dn",a[0],j,*p); //a[0]=3,j=2,*p=3 return 0; }
#includeint main() { int a[3] = {2,7,8}; int* p; int j; p = a; j = *p ++; printf("a[0]=%d,j=%d,*p=%dn",a[0],j,*p); //a[0]=2,j=2,*p=7 j = p[0] ++; //此时p[0]指向了7的位置,a[0]不变仍然是2 printf("a[0]=%d,j=%d,*p=%dn",a[0],j,*p); //a[0]=2,j=7,*p=8 return 0; }



