2 tl437002770 tl437002770 于 2016.04.22 15:26 提问

强制转换后编译不通过和指针为NULL有什么区别?

c2=static_cast(b2);
c2和b2是兄弟类,用static_cast编译会出错,用dynamic_cast编译不会出错,但指针为0,
可是无论那种情况,转换后的指针都无法使用啊,那么两者的结果有什么区别吗?

3个回答

NK_test
NK_test   Rxr 2016.04.23 00:08

static_cast用法不对,应该是static_cast(),其中T是目标类型。

oyljerry
oyljerry   Ds   Rxr 2016.04.22 16:04

你static_cast的时候还要指定类型,来进行强制转换

tl437002770
tl437002770   2016.04.22 19:32

不好意思,这里是笔误,有指定类型的!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
强制类型(结构体)转换NULL-----C指针的黑科技
一个头疼的例子(改写自Tencent—libco)#include<stdio.h> #include<string.h> typedef struct aa{ char a; int b; char o[3]; }a; int main(void) { a test; memset(&test, 0, (long)(((a *)NULL)->o)); }这个
细节问题系列之指针类型强制转换
unsigned int nValue = 0x5D6C7B3E; printf("%c", *((unsigned char *)(&nValue) + 2) + 2
delete一个指针之后,要记得设置为NULL
 众所周知,最开始我们用new来创建一个指针,那么等我们用完它之后,一定要用delete将该指针删掉。但是,值得注意的是,难道就仅仅是删除这个指针这么简单的么?下面,我们用一个程序来说明这个问题: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #includ
C指针强制类型转换对所指向的数据的影响
学习C指针过程中,受同学启发,思考了一个问题:如果对一个指针的类型进行强制转换(比如将一个指向整型的指针强制转换为指向字符的指针),那么这个指针指向的数据会发生什么样的变化呢?   下面的代码实现了对指针类型的强制转换,并打印出了指针类型转换前后指针所指向的变量的值:   #include <stdio.h>void main(void) { int *p1;
当类的指针被赋值为NULL时,类的哪些成员还可以被该指针调用
因为函数在类里面是独立于类存在的,而且不占用类的空间,在程序编译的时候就已经把函数的地址分配好了,因此,只要有这么一个对象,不管他指向NULL还是非NULL,都是可以调用该函数的,也不会出错。
为何指针初始化为NULL
为何指针初始化为NULL
C/C++强制类型转换、指针类型转换发生了什么
(1)强制类型转换 强制类型转换是对变量对应的内存里面的0和1按照新的类型进行重新解释的过程 代码: #include using namespace std; int main(int, char *[]) { char c = 0xA0;//0xA0 [-128~127] 最高位为1表示负数 0xA0 = 1010 0000 = -96 //高位补0 0xA0->0xFF
数组强制转换成结构体指针
今天看公司代码,遇到一个数组指针强制转换成结构体指针的地方,就在想这样做的结果会是什么,和别人讨论了一下。得到结果是,这样做是让结构体按照自己的属性重新读取数组中的数据, 字节对齐 如果结构体中所有属性所占字节和数组的类型所占字节一样(如果数组类型是16位的,属性也是16位的),那就直接按照属性的顺序,将数组中的数据依次读取出来(是读取,不是复制,因为是指针强制转换) 字节不对齐 如果结构
C++在delete指针之后是否要置为null
delete一个指针之后,只是回收指针指向位置的空间,而指针本身的值不变(也就是说还是指向那个地址的)。你需要手工将其赋值为NULL。 现在对于printf的反汇编代码不太熟悉,以后写个实例分析一下。
C++的四种强制转换
本文讨论了c++中reinterpret_cast、const_cast、static_cast和dynamic_cast四种强制转换的相关知识。