在C++中,NULL与False相同

Roo*_*Roo 6 c++

在C++(gcc,VS)中,NULL被认为与False相同.或者更重要的是,如果在逻辑语句中,NULL评估为什么.还有许多其他问题,但C++没有具体问题.

由于某种原因,使用NULL控件循环(;;)只是冻结程序,指示在;;之间放置了除NULL之外的东西.请注意,此代码是我们的教授认为包含NULL值的代码.

Mik*_*els 27

我相信NULL通常定义为0,当用作布尔表达式时,巧合地计算为false.

  • 任何不为0的东西都会被评估为真 (7认同)
  • 这不是巧合.空指针值应该计算为false,因此是整数0.所有其他指针和整数值应该计算为true. (3认同)
  • 你们都错了,伙计们。它也可以是“0L”(长整型)或任何其他零常数整数值。如果你分裂头发,那么请分裂它们*真的*:) (2认同)

Bar*_*ark 6

在C++中,NULL#defined0(因此计算结果为false).在C中,它是a void*,也计算为false,但其类型不是数字类型.在标准库中(至少在GCC上):

#ifndef __cplusplus
#define NULL ((void *)0)
#else   /* C++ */
#define NULL 0
#endif  /* C++ */
Run Code Online (Sandbox Code Playgroud)

  • 在C中*它可以是*void*`,但不一定是*是*void*`.它也很容易在C中定义为"0",就像在C++中一样. (5认同)