close
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
// " "表示當前指標位址
//<"1" , 2 > //&a="1"
//<1 , 2 > < "0" , 0 > //&a+1="0" = ptr 加1個size(a)單位大小=4x2=8Byte
//<1 , "2" > < 0 , 0 > //ptr-1 ="2" 加1個size(ptr)單位大小=4Byte (int *ptr)
int a[] = {1,2}; // a的單位size 是4x2=8 Byte , &a=ff5C
int *ptr = (int*)(&a +1); // (a指標+1)意謂著 大小加size(a)的一個單位= 8Byte ,(&a+1)=ff64
int *ptr2=(ptr-1); // *ptr2=ff60 , ptr=ff64 >> (ptr-1)是根據ptr本身的size作為一個單位(int* ptr 是4Byte (in 32位元結構))
printf("%d",*(ptr-1 ));// "2"
printf("%d",*(ptr2-1 ));//"1"
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
// " "表示當前指標位址
//<"1" , 2 > //&a="1"
//<1 , 2 > < "0" , 0 > //&a+1="0" = ptr 加1個size(a)單位大小=4x2=8Byte
//<1 , "2" > < 0 , 0 > //ptr-1 ="2" 加1個size(ptr)單位大小=4Byte (int *ptr)
int a[] = {1,2}; // a的單位size 是4x2=8 Byte , &a=ff5C
int *ptr = (int*)(&a +1); // (a指標+1)意謂著 大小加size(a)的一個單位= 8Byte ,(&a+1)=ff64
int *ptr2=(ptr-1); // *ptr2=ff60 , ptr=ff64 >> (ptr-1)是根據ptr本身的size作為一個單位(int* ptr 是4Byte (in 32位元結構))
printf("%d",*(ptr-1 ));// "2"
printf("%d",*(ptr2-1 ));//"1"
return 0;
}
全站熱搜
留言列表