请问NULL,0,\0,未分配 之间究竟是什么区别???
答案:3 悬赏:10 手机版
解决时间 2021-04-15 22:06
- 提问者网友:欲望失宠
- 2021-04-15 17:40
也就是c/c++中的这些定义或者数据之间的实际区别?
最佳答案
- 五星知识达人网友:白昼之月
- 2021-04-15 19:16
实质上没有区别,都是0
只不过由于高级语言有类型检查,所以才把他们识别为NULL,0和'\0'三种形式,分别用在不同类型的操作之中
以上三种形式分别表示空指针,数值0和空字符
不过c++里0就表示空指针,而不用NULL
c里边NULL是 ((void*)(0))
你可以去c里的头文件里找,c++里stdio.h定义的形式是
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
只不过由于高级语言有类型检查,所以才把他们识别为NULL,0和'\0'三种形式,分别用在不同类型的操作之中
以上三种形式分别表示空指针,数值0和空字符
不过c++里0就表示空指针,而不用NULL
c里边NULL是 ((void*)(0))
你可以去c里的头文件里找,c++里stdio.h定义的形式是
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
全部回答
- 1楼网友:蕴藏春秋
- 2021-04-15 19:38
首先说明,0一般指数字0这和ascii的\0和宏替换NULL在数值上是完全一样的,所占存储空间,根据0的数据类型不同而不同,\0和NULL却不存在这个问题。一般\0用来判断字符串或者文件结尾,用NULL判断打开文件等操作是否成功。数字0一般用来进行运算,ascii字符0在数值上不等于0也是一个特例。
- 2楼网友:迷人又混蛋
- 2021-04-15 19:27
NULL 表示为空 比如指针判断 就可以用NULL 不过NULL的实质就是0
可以查看下NULL的宏 实质就是 #define NULL 0
0呢 可以表示数字 可以表示假
\0表示一个字符串的结尾 比如char a[9]="aabbcc";
以上字符只有6个 但是空间却有9个 遍历时如何判断已经到了字符结尾呢?
判断当前字符是否等于'\0‘就可以了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯