(char *)0是指空字符NULL,只有这一种表示吗,可以用NULL直接表示空字符吗?各位大侠,请求解答。。。。

发布网友 发布时间:2022-04-25 23:07

我来回答

5个回答

热心网友 时间:2023-10-17 06:17

不可以的,表示的意义是不同的。具体解释如下:
空字符的定义:char a = "",我们称之为空字符,实际情况是什么样子呢
字符a是分配了内存的,只不过它的值为空而已,所有字符串的方法,a都是可以使用的

下面再看看NULL,如果我们这样写char *a = NULL
那说明我们定义了一个char指针a,并指向了NULL,实际上并没有分配内存
如果你这个时候使用char的方法,将会出现错误

上面的区别也可以简单的总结为声明和定义的区别吧,建议楼主看一下

热心网友 时间:2023-10-17 06:17

你看头文件就知道了
#define NULL 0
#define NULL ((void *)0)
也就是说,NULL表示的就是0,字符串最后就是0,当然你也可以给字符赋值NULL,如:char c = NULL;
不知道你所谓的空字符是怎么,我只听说过空字符串,char str[10] = NULL; 或 char str[10] = "";

热心网友 时间:2023-10-17 06:18

可以 比如 char *a = NULL;

热心网友 时间:2023-10-17 06:18

可以的吧

#define NULL ''

热心网友 时间:2023-10-17 06:19

可以,如果报错请加上头文件stddef.h

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com