1. 程式人生 > >關於指標運算的學習心得!

關於指標運算的學習心得!

①指標加指標:指標加指標非法,無意義。

②指標減指標:結果為間隔的單元格個數,可正可負。步驟如下: ⒈算出間隔的位元組數。 ⒉除以調整權重。 例:

int main()
{
	int arr[10] = {1};
	int *p = &arr[1];//x+4
	int *q = &arr[9];//x+36
	printf("%d\n",p-q);//-8
	printf("%d\n",q-p);//8
	printf("%d\n",(double *)q-(double *)p);//4
	printf("%d\n",(short *)q-(short *)p);//16
	printf("%d\n",(char **)q-(char **)p);//8
	printf("%d\n",(char *)q-(char *)p);//32
	printf("%d\n",(long)q-(long)p);//32
   return 0;
}

③指標加減數字: ⒈指標加減一表示加或減一個指向的單元格。 ⒉指標加減需要調整,調整權重為sizeof(指標去掉*) 例:

    int main()
    {
    	int *p = (int *)1000;
    	//*p = 10;//error
        printf("%d\n",p+4);//1016
        printf("%d\n",(char *)p+4);//1004
        printf("%d\n",(short *)p+4);//1008
        printf("%d\n",(double*)p+4);//1032	
        printf("%d\n",(unsigned long*)p+4);//1016
        printf("%d\n",(int ***)p+4);//1016	
        printf("%d\n",(longlong)p+4);//1004
          return 0;

}

總結:指標的算數運算都需要調整。