int a=5;
int* p (初始化了p指针,其中p的值是为0x6的(假设地址为6));
所以直接 int* p = a;让 0x6=5,明显类型不同不能赋值;
而 (int*)a类型则是将 5转化为→ 0x5;因此可以直接将p=0x6赋值0x5;
因此 int* p= (int*)a是成立的,是直接将a的值作为p的指向地址;
而后续的*p则是将p的0x6取值为其地址的单元包含的值→6(可能为该值,但已经不是地址类型了)。
int a=5;
int* p (初始化了p指针,其中p的值是为0x6的(假设地址为6));
所以直接 int* p = a;让 0x6=5,明显类型不同不能赋值;
而 (int*)a类型则是将 5转化为→ 0x5;因此可以直接将p=0x6赋值0x5;
因此 int* p= (int*)a是成立的,是直接将a的值作为p的指向地址;
而后续的*p则是将p的0x6取值为其地址的单元包含的值→6(可能为该值,但已经不是地址类型了)。