有人能跟我解释下第二行那个(short*)arr的意思吗,跟前面的关系是啥样的

img

前面初始化时,定义的arr为整型数组的起始地址,所以它指向的是整型数字1,第二行定义的short型地址p被赋值为数组的起始地址,而两个变量的数据类型不同,就通过强制数据类型转换将arr转换为short型地址。

int arr[] ,数组名即为数组的首地址,也可看作是指向数组首地址的指针:(int *)arr.
(short*)arr ,将 arr 强制类型转换为 (short*)arr 短整形指针。

short是短整数,一般占两字节,*是指针