决定了 :
1、解引用时,对(以指针所代表的地址开始的)内存空间的访问权限时多大。
int a = 0x11223344; // 4个字节(byte)
char* p = &a; // 1个字节(byte)
*p = 0; // 此操作仅能将 a 的第一个字节改为 0,于是 a = 0x223344
2、指针走一步,能走多远。
int arr[] = {1,2,3,4};
char* p = &arr;
int i = 0;
for(i=0; i<4; i++)
{
*(p + i) = 0;
}
// 经过以上赋值操作后,arr[] = {0, 2, 3, 4},而非 {0, 0, 0, 0}
for(i=0; i<4; i++)
{
printf("%d ",arr[i]);
}