• 32340阅读
  • 13回复

[提问]请问下各路大神,QT里面怎么判断指针是否为空? [复制链接]

上一主题 下一主题
离线cfanlis
 

只看楼主 倒序阅读 楼主  发表于: 2014-07-02
— 本帖被 XChinux 执行加亮操作(2016-04-04) —
请问下各路大神,QT里面怎么判断指针是否为空?
MainWindow *test;结果!test=false       test==NULL也是FALSE,明明没有实例化啊~~~请各路大神指教啊~~~
离线cfanlis

只看该作者 1楼 发表于: 2014-07-02
先帮自己顶一下~
离线shiziyang

只看该作者 2楼 发表于: 2014-07-02
没有初始化成NULL的话应该会是个乱值
1条评分金钱+1
cfanlis 金钱 +1 - 2014-07-03
离线dbzhang800

只看该作者 3楼 发表于: 2014-07-02
没有实例化的指针 叫 “野指针”,不叫“空指针”

1条评分金钱+1
cfanlis 金钱 +1 - 2014-07-03
离线pain22

只看该作者 4楼 发表于: 2014-07-02
MainWindow *test=NULL
if(!test)
{
}
1条评分金钱+3
cfanlis 金钱 +3 - 2014-07-03
离线begboy

只看该作者 5楼 发表于: 2014-07-02
回 dbzhang800 的帖子
dbzhang800:没有实例化的指针 叫 “野指针”,不叫“空指针”
(2014-07-02 17:01)

赞成DeBao兄的讲法。

另外提提我个人的看法:
对于没有实例化的指针,在不同的C/C++编译器其结果会不同,
甚至同一个编译器不同时期版本也会有变化。有些只是警告,如早期
的TC、BC、TCC、GCC/G++、CLANG、Intel C/C++等等;
但有些是除警告外不予继续编译,如IBM VisualAge for C++,CC等等
如最早期的CC编译器,没有实例化在编译期间会提示出错后直接退出编译(加选项除外)。

关于C指针,建议看看《C和指针》一书。
祝好运。
begboy

1条评分金钱+1
cfanlis 金钱 +1 - 2014-07-03
离线xiaowu311

只看该作者 6楼 发表于: 2014-07-02
那是你初始化的问题,不初始化的话 它的值时不定的

内容来自[新鲜事]
1条评分金钱+1
cfanlis 金钱 +1 - 2014-07-03
离线leonchiong

只看该作者 7楼 发表于: 2014-07-03
MainWindow *test = 0;
这样写 后面的就对了
1条评分金钱+3
cfanlis 金钱 +3 - 2014-07-03
离线彩阳

只看该作者 8楼 发表于: 2014-07-03
现在我倾向这么写:
if ( pointer != Q_NULLPTR ) doSomething;
1条评分金钱+3
cfanlis 金钱 +3 - 2014-07-03
上海Qt开发联盟,热忱地欢迎你的加入!
离线cfanlis

只看该作者 9楼 发表于: 2014-07-03
回 begboy 的帖子
begboy:赞成DeBao兄的讲法。
另外提提我个人的看法:
对于没有实例化的指针,在不同的C/C++编译器其结果会不同,
.......(2014-07-02 17:32)嬀/color]

恩,我以前主要开发APP,现在转过来。。。真心有点不适应。。。
离线cfanlis

只看该作者 10楼 发表于: 2014-07-03
回 leonchiong 的帖子
leonchiong:MainWindow *test = 0;
这样写 后面的就对了(2014-07-03 10:00)嬀/color]

离线cfanlis

只看该作者 11楼 发表于: 2014-07-03
回 pain22 的帖子
pain22:MainWindow *test=NULL
if(!test)
{
}(2014-07-02 17:16)嬀/color]

离线cfanlis

只看该作者 12楼 发表于: 2014-07-03
受教了~~~~~~

内容来自[短消息]
离线书香流年

只看该作者 13楼 发表于: 2016-04-02
指针=Q_NULLPTR
快速回复
限100 字节
 
上一个 下一个