指针转换:在编程中把一个指针类型“强制”或“显式”转换成另一种指针类型(例如把 void* 转为 int*,或把基类指针转为派生类指针)。常用于底层操作、与接口/库对接,但如果类型不匹配或违反对齐/别名规则,可能导致未定义行为或安全问题。另有更广义含义,如在 C++ 中使用 static_cast / reinterpret_cast / dynamic_cast 进行不同语义的指针转换。
/ˈpɔɪntər ˈkæstɪŋ/
The code uses pointer casting to convert a void pointer to an int pointer.
这段代码用指针转换把 void 指针转换成 int 指针。
In C++, careless pointer casting between unrelated types can compile but may cause undefined behavior at runtime.
在 C++ 中,把不相关类型的指针随意强制转换虽然可能通过编译,但运行时可能引发未定义行为。
pointer 源自 “point(指向/指点)”,引申为“指向某处的东西”,在计算机里指“指向内存地址的变量”。cast 原意有“投掷、铸造”,在编程语境中引申为“把一个值按另一种类型来解释/转换”。合起来 pointer casting 就是“对指针做类型转换(或重解释)”。
void*、内存与接口时涉及“将一种指针类型转换为另一种”的用法与注意事项。