1、优先级
2、将指针指向一个地址:int *p = (int *)0xabcdef;
3、数组a不能作为左值(被赋值);
4、
int main()
{
int a[4] = { 1, 2, 3, 4 };
int *ptr1 = (int *)(&a + 1);
int *ptr2 = (int *)((int)a + 1);
printf( "%x,%x", ptr1[-1], *ptr2);
return 0;
}
&a表示数组a的地址,&a[0],a表示数组首元素的地址;
(int)a +1表示从a首元素的第二个字节开始一个int字节的数据的地址的int型值;