gpt4 book ai didi

c++ - 显式类型转换

转载 作者:太空宇宙 更新时间:2023-11-04 15:53:57 25 4
gpt4 key购买 nike

我在一本书中读到过这样的描述:

//: C03:SimpleCast.cpp
int main() {
int b = 200;
unsigned long a = (unsigned long int)b;
} ///:~

“类型转换很强大,但它会引起头痛,因为在某些情况下在某些情况下,它会强制编译器将数据视为(对于例如)比实际大,所以它会占据更多的空间内存;这可以践踏其他数据。这通常发生在转换指针时,而不是在进行像这样的简单转换时如上所示。”

现在请您提供一个转换指针可以践踏其他数据的例子吗?

最佳答案

int main(void)
{
short int a = 5;
short int b = 7;
*(long int*)&a = 0;
}

假设 sizeof(long) > sizeof(short),并假设编译器将 a 放入栈中 b 之前, b 将被丢弃。

关于c++ - 显式类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2960682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com