278得票10回答
在Java中进行类型转换时遇到空值不会抛出异常

String x = (String) null; 为什么这个语句中没有异常?String x = null; System.out.println(x); 它打印出 null。但是 .toString() 方法应该抛出空指针异常。

48得票2回答
(void *)1 是什么意思?

我正在阅读ROS的代码。 在文件ros_comm/roscpp/include/ros/subscriber.h中,我看到了这样一段代码:operator void*() const { return (impl_ && impl_->isValid()) ? (voi...

18得票8回答
C++或Java中类型强制转换和类型转换有什么区别?

在C++或Java中,类型转换(typecasting)和类型转换(typeconversion)有什么区别?

12得票1回答
为什么在x86架构上,-Wcast-align没有警告char*到int*的强制转换?

我知道gcc有一个选项-Wcast-align,当指针强制转换会增加目标所需的对齐方式时,该选项会发出警告。 这是我的程序:char data[10]; int ptr = *((int *)data); 在我的电脑上,数据的对齐要求是1,而指针的对齐要求是8。为什么我没有收到警告?可能是因为...

9得票3回答
当使用类型转换运算符时,条件运算符"?: "会产生编译错误

以下代码是最简单的形式: struct X { operator char () const { return 'a'; } }; int main () { X obj, *p = &obj; char a = *p; // ok char c = (true)...

7得票3回答
在 Swift 中,“as string”和“stringvalue”的区别是什么?

我有一段代码: var i : AnyObject! i = 10 println(i as String) println(i.stringValue) 在as String行代码处,程序崩溃了,但在第二个i.stringValue行代码处运行正常。上述代码中,as String和st...

7得票1回答
C++类型转换运算符重载

我有一个只有一个 int 成员的类,例如: class NewInt { int data; public: NewInt(int val=0) { //constructor data = val; } int operator int(NewInt to...