NULL, 0, 空格与'0','\0'
来源:互联网 发布:考研英语网络间谍 编辑:程序博客网 时间:2024/05/19 13:26
NULL其实是一个宏,定义为0,#include <stdio.h> 里是:
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
#ifndef NULL
#ifdef
#define NULL
#else
#define NULL
#endif
#endif
判断指针是否为空时,p==NULL, 或p==0是一样的意思,但习惯用NULL更好。
后面的空格(' ')与'0','\0'主要是在字符串中容易混淆,可以通过ASCII码值来帮助区分:将所有的字符译为ASCII码值,
空格(' ')--->32
'0'-------->48
'\0'------->0
C库里字符串的处理是按ASCII码值来处理的,例如以'\0'值结束,就是以0值结束,所以p是字符指针,p[i]='\0'与p[i]=0或p[i]=NULL都是一样的,都可以作为字符串结束标志。(memset(p, 0, N)与memset(p, '\0', N)与memset(p, NULL, N)都是一样的。)
理解了这些,那么'0',空格(' ')就不会混淆为结束标志了,它们与普通字符没什么区别。
- NULL, 0, 空格与'0','\0'
- NULL, 0, 空格与'0','\0'
- NULL, 0, 空格与'0','\0'
- NULL、0与nullptr
- NULL、空格串、空字符串、0的区别和NULL详解及拓展
- '\0'与NULL的区别
- ‘\0’与“\0”,NULL的区别
- C++中null与0的区别
- php null 空字符串与 0
- void ,NULL与0的区别联系
- js中null与0的比较
- 数组长度为0与NULL
- 关于'\0'与0与NULL的一些实践
- KernelIoControl(0x11, NULL, 0, NULL, 0, NULL);
- 空字符与空格字符、NULL、空字符串
- WinMain(GetModuleHandle(0),NULL,NULL,0);
- c++中NULL,null,"",\0的区别
- null和空格
- Android实现数据存储技术
- File and Directory Enumeration
- EAS 中重定向 Context及获得用户密码策略
- 滚动数组
- Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理
- NULL, 0, 空格与'0','\0'
- 奇数阶幻方
- KMP算法
- 从一个文件读取数据
- 下载docx时当做zip文档解决方案
- Silverlight用户控件自定义,同事写的例子目前自己还没看懂,不过先留着
- awk
- 实现UITableView中点击不同cell进入不同Controller的方法
- 1.4 控制结构