指针指向空字符串和指针赋值为NULL的区别
2014-04-15 19:32
239 查看
今天刷题,遇到一个很模棱两可的问题:一个指向空字符串的指针与赋值为NULL的指针有区别吗?
现通过程序来检验一下这两者的区别:
输出的结果为:bad!。这通过程序调试很容易理解,程序会为每个初始化的指针赋值。下面是我在自己的机器上调试的情况:
可以看到指针p指向的地址为0x0,而q指向的的地址是0x403064。两个指针的值明显是不同的,而且通过测试可知,所有指向NULL的指针的值都是为0x0,这里q虽然是指向空串,但是程序还是为空串分配了内存地址。
现通过程序来检验一下这两者的区别:
#include <iostream> using namespace std; int main() { char *p, *q; p = NULL; q = ""; if(q == p) cout << "Hello world!" << endl; else cout << "bad!"<<endl; return 0; }
输出的结果为:bad!。这通过程序调试很容易理解,程序会为每个初始化的指针赋值。下面是我在自己的机器上调试的情况:
可以看到指针p指向的地址为0x0,而q指向的的地址是0x403064。两个指针的值明显是不同的,而且通过测试可知,所有指向NULL的指针的值都是为0x0,这里q虽然是指向空串,但是程序还是为空串分配了内存地址。
相关文章推荐
- CodeForces 20B Equation (简单题)
- HDU2918:Tobo or not Tobo(IDA)
- Android横屏竖屏切换的问题
- C# 中的委托和事件
- 筛选法求素数
- Python封装的访问MySQL数据库的类及DEMO
- hdu 畅通工程再续
- 我行我素购物管理系统(部分功能)
- STL中map,multimap,set,multiset,unordered_map,unordered_multimap,unordered_set,unordered_multiset的实现方法
- iTween.ValueTo实现tk2d的sprite渐隐效果
- POJ 3414 Pots
- cocos2D-X在Eclipse中的实现的C++与java相互调用
- 关于view重绘的一些认识
- 不定的工资类
- poj 3094
- Qt入门-文本框类QLineEdit和QTextEdit
- 随笔
- Json-->Newton.Json.dll的使用方法
- Matlab R2013b安装
- 解决这九种困扰 可以让你每天精神百倍