![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++基础
文章平均质量分 85
没有头发的键客
这个作者很懒,什么都没留下…
展开
-
[C/C++ 基础](类型转换系列三) dynamic_cast与std::dynamic_pointer_castcast
文章目录结论事例dynamic_cast原理使用测试std::dynamic_pointer_cast原理使用测试强调如果说static_cast是C++对C风格类型转换的继承,那么dynaic_cast可以说是完全脱离了C风格的类型转换,主要服务于C++的多态特性。学会正确的使用这种类型转换在大型软件开发的实践中可以说是非常的重要。在大型软件中多态特性往往会被用到极致,dynamic_cast的使用可以帮助我们在开发过程中规避很多风险。结论dynamic_cast<new_type>(原创 2021-10-09 20:00:00 · 5089 阅读 · 6 评论 -
[C/C++ 基础](类型转换系列二) static_cast与传统的C风格强制类型转换
文章目录结论static_cast与C风格强制类型转换的区别主要应用场景简单的事例基础类型之间的变换继承类之间的变换强调结论C++代码中,对于基础类型(int、float、void、enum、指针等)尽量使用static_cast进行转换,而不是使用C风格的强制类型转换。继承类之间的转换,尽量不要使用static_cast而是使用dynamic_cast,因为缺乏足够的安全性。static_cast通常的使用形式是:new_type b = static_cast < new_type原创 2021-10-06 10:30:00 · 982 阅读 · 0 评论 -
[C/C++ 基础](类型转换系列一) 编译时类型转换const_cast和reinterpret_cast
const_cast和reinterpret_cast都是编译时类型转换,简单的说这两种类型转换是告诉编译器,应该将某个变量看作是什么类型,而不会对变量做任何内存上的变动。原创 2021-10-01 10:51:28 · 249 阅读 · 0 评论 -
C在栈空间内存上的基本运行过程以及各个变量的每个字节在栈内存上的分布
栈底为高地址,栈顶为低地址。程序入栈从栈底开始,进入主(main)函数后,依次将变量a、b压栈。进入下一个函数func(c,d)的时候,先是将形参d压栈,然后将形参c压栈,并把a、b的数值复制给相应的形参,当func函数返回的时候,整个函数的出栈,func函数内部的变量也全部销毁出栈,重新进入主函数。 在使用指针对变量一个字节一个字节内存操作的时候,需要注意不同变量地址上的区...原创 2018-09-09 11:02:23 · 248 阅读 · 0 评论