📌  相关文章
📜  NULL 指针、Null字符('\0') 和 C 中的 '0' 之间的区别与示例

📅  最后修改于: 2021-09-12 11:35:07             🧑  作者: Mango

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

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

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

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

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

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

下面是打印 ‘\0’ 和 ‘0’ 值的 C 程序:

// 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 基础课程