📌  相关文章
📜  带有示例的C中NULL指针,空字符(‘\ 0’)和’0’之间的区别

📅  最后修改于: 2021-05-28 04:18:36             🧑  作者: Mango

空指针:
整数常数0( 0 )取决于所使用的含义不同。在所有情况下,它都是一个值为0的整数常量,只是以不同的方式进行了描述。
如果将任何指针与0进行比较,则将检查该指针是否为空指针。然后将此0称为空指针常量。 C标准定义将类型转换为(void *)的0既是空指针,又是空指针常量。
头文件“ stddef.h”中提供了宏NULL

下面是检查NULL指针的方法:

  • NULL被定义为将等于空指针的值比较为:
    if(pointer == NULL)
    
  • 下面的if语句隐式检查“ is not 0” ,因此我们将其反转为“ is is 0”,表示为:
    if(!pointer) 
    

空字符( ‘\ 0’ ):
‘\ 0’被定义为空字符。它是一个所有位都设置为零的字符。这与指针无关。 ‘\ 0’是(与所有字符字面量)为整数常量,值为零。

  1. 下面的语句检查字符串指针是否指向空字符。
    if (!*string_pointer)
    
  2. 下面的语句检查字符串指针是否指向非null字符。
    if (*string_pointer)
    

在C语言中,字符串不过是char类型的数组。它将每个字符存储在1个字节的存储空间中。每个数组都以‘\ 0’或空字符结尾,但是如果我们在字符串存储‘0’ ,则根据C语言,两者都不相同。根据ASCII表, “ 0”表示48 ,而根据ASCII表, “ \ 0”表示0

下面是C程序,用于打印’\ 0’和’0’的值:

// C program to print the value of
// '\0' and '0'
#include 
  
// Driver Code
int main()
{
    // Print the value of
    // '\0' and '0'
    printf("\\0 is %d\n", '\0');
    printf("0 is %d\n", '0');
    return 0;
}
输出:
\0 is 0
0 is 48

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。