相关疑难解决方法(0)

NULL,'\ 0'和0之间有什么区别

在C中,似乎有零各个值之间的差- NULL,NUL0.

我知道ASCII字符的'0'计算结果为480x30.

NULL指针通常定义为:

#define NULL 0
Run Code Online (Sandbox Code Playgroud)

要么

#define NULL (void *)0
Run Code Online (Sandbox Code Playgroud)

另外,也有似乎评价的NUL人物.'\0'0

是否有时候这三个值不相等?

这在64位系统上也是如此吗?

c null pointers

287
推荐指数
6
解决办法
28万
查看次数

为什么在C和C++中对NULL指针的定义不同?

在C中,NULL定义为(void *)0在C++中它是0.为什么会这样?在CI中可以理解,如果NULL不是类型转换,(void *)则编译器可能/可能不会生成警告.除此之外,有什么理由吗?

c c++ null pointers

71
推荐指数
2
解决办法
6万
查看次数

C中的NULL总是为零吗?

昨天我正在面试一个中级软件工程职位的人,他提到在C中,NULL并不总是零,并且他已经看到了C的实现,其中NULL不为零.我觉得这很可疑,但我想确定.谁知道他是对的?

(回复不会影响我对这位候选人的判断,我已将决定提交给我的经理.)

c null pointers zero

56
推荐指数
4
解决办法
3万
查看次数

((void*)0)是否为空指针常量?

我正在阅读这篇博客文章,在Null指针常量和括号表达式部分下,作者参考了ISO C标准中的第6.3.2.3节和第6.5.1节,并说:

没有说括号空指针常量是一个空指针常量.

严格来说,这意味着,这(void*)0是一个空指针常量,但((void*)0)不是.

然后:

我敢肯定,大多数C实现根本治疗括号空指针常数作为空指针常数,并定义NULL无论是作为0,((void*)0)或以其他的方式.

两个参考部分说:

§6.3.2.3

值为0的整型常量表达式或类型为void*的表达式称为空指针常量.

§6.5.1

带括号的表达式是主表达式.它的类型和值与未表示的表达式相同.如果未表示的表达式分别是左值,函数指示符或空表达式,则它是左值,函数指示符或void表达式.

粗体句是否与提交人声称((void*)0)不是空指针常量相矛盾?

c language-lawyer

35
推荐指数
2
解决办法
3万
查看次数

标签 统计

c ×4

null ×3

pointers ×3

c++ ×1

language-lawyer ×1

zero ×1