空指针:
整数常数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’是(与所有字符字面量)为整数常量,值为零。
- 下面的语句检查字符串指针是否指向空字符。
if (!*string_pointer)
- 下面的语句检查字符串指针是否指向非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基础课程》。