3884得票44回答
3098得票12回答
何时应该使用static_cast、dynamic_cast、const_cast和reinterpret_cast?

这些都是什么? static_cast dynamic_cast const_cast reinterpret_cast (type)value (C 风格转换) type(value) (函数式转换) 在哪些情况下使用这些转换方式?如何确定使用哪种转换方式?

2155得票14回答
2034得票8回答
常规转换 vs. static_cast vs. dynamic_cast

我已经写了将近20年的C和C++代码,但是这些语言中有一个方面我从来没有真正理解过。显然我使用过常规转换,即MyClass *m = (MyClass *)ptr; 代码中有很多转换,但似乎还有两种其他类型的转换,我不知道它们之间的区别。以下代码行有什么区别?MyClass *m = (MyC...

1889得票23回答
为什么我应该使用指针而不是对象本身?

我来自Java背景并开始使用C ++中的对象。但是有一件事情让我想起,那就是人们经常使用指向对象的指针而不是对象本身,例如这个声明:Object *myObject = new Object; 与其...不如:Object myObject; 或者不使用函数,而是像这样使用testFunc()...

1802得票20回答
使用数组时,为什么a[5]等于5[a]?

正如 Joel 在 Stack Overflow podcast #34 中指出的那样,在 C Programming Language(又称:K&R)中,提到了 C 数组的这一属性:a[5] == 5[a] Joel 表示这是由于指针算术运算,但我仍然不理解。 为什么 a[5] =...

1785得票23回答
const int*、const int * const和int const *之间有什么区别?

我经常混淆如何正确使用 const int*,const int * const 和 int const *。是否有一组规则定义了你可以做什么和不能做什么? 我想知道在赋值、传递给函数等方面所有的可行和不可行之处。

811得票10回答
在C语言中如何将函数作为参数传递?

我想创建一个函数,可以对一组数据执行传递的函数。在C语言中如何将函数作为参数传递?

687得票6回答