我们在使用指针是,有时候需要强制转换指针的类型。如:
char a;
int *ptr = (int *)&a;
...........
...............
ptr++;
*ptr = 123;
上面强制转换过程中。把char型指针&a转换成int型指针。但在访问中有时会出错。
在指针的强制类型转换:ptr1=(TYPE*)ptr2中,如果sizeof(ptr2的类型)大于sizeof(ptr1的类型),那么在使用指针ptr1来访问ptr2所指向的存储区时是安全的。如果sizeof(ptr2的类型)小于sizeof(ptr1的类型),那么在使用指针ptr1来访问ptr2所指向的存储区时是不安全的。
char a;
int *ptr = (int *)&a;
...........
...............
ptr++;
*ptr = 123;
上面强制转换过程中。把char型指针&a转换成int型指针。但在访问中有时会出错。
在指针的强制类型转换:ptr1=(TYPE*)ptr2中,如果sizeof(ptr2的类型)大于sizeof(ptr1的类型),那么在使用指针ptr1来访问ptr2所指向的存储区时是安全的。如果sizeof(ptr2的类型)小于sizeof(ptr1的类型),那么在使用指针ptr1来访问ptr2所指向的存储区时是不安全的。