NULL与0之间的关系
发布网友
发布时间:2022-07-29 11:31
我来回答
共5个回答
热心网友
时间:2023-11-22 19:39
NULL 就是0
str = NULL 表示地址为零,没有分配具体内存
只有在 char * str = (char*)malloc(20);的时候才分配了str的地址
此时str地址为一个大整数(由计算机地址位数决定),在一般的系统里类似于
0x1234abcd这样的大整数
热心网友
时间:2023-11-22 19:39
NULL 就是0
str = NULL 表示地址为零,没有分配具体内存
只有在 char * str = (char*)malloc(20);的时候才分配了str的地址
此时str地址为一个大整数(由计算机地址位数决定),在一般的系统里类似于
0x1234abcd这样的大整数
热心网友
时间:2023-11-22 19:40
就是阿拉伯数字0,asci码的每一个字符都跟一个整数对应,asci码中的字符0对应的整数是48。如果理解成asci码中第一个字符应该也可以,因为其对应的也是整数0。而你所说的 str = NULL; str应该是字符串名称或字符数组的数组名吧,那么这个操作进行的便是地址传递,把0传给str意味着字符串为空或指针什么也没有指向。
热心网友
时间:2023-11-22 19:40
在VC 9的 WinDef.h文件中是这么定义NULL的:
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
看懂了么,意思就是说,如果在C++里面,NULL就是0,如果在C里面,NULL就是((void *)0)
热心网友
时间:2023-11-22 19:41
101021