指针加法需要调整,调整的权重是指针本身去掉一个*号,再求sizeof();
举例:int *p , p+1 ; 加4 ( sizeof ( int ) * 1) 字节;
double *p , p+1 ; 加8 ( sizeof ( double ) * 1) 字节;
#include<stdio.h>
int main()
{
int *p = ( int * ) 10000
printf ( " %d\n " , p + 1 ); 10004
printf ( " %d\n " , p + 4 ); 10016
printf ( " %d\n " , ( char * ) p + 4 ); 10004
printf ( " %d\n " , ( shart * ) p + 4 ); 10008
printf ( " %d\n " , ( double * ) p + 4 ); 10032
printf ( " %d\n " , ( unsigned long long) p + 1 ); 10001
printf ( " %d\n " , ( int *** )p + 1 ); 10004
printf ( " %d\n " , ( double ** )p + 1 ); 10004
printf ( " %d\n " , ( float ** )p + 1 ); 10040
return 0 ;