首页 > 解决方案 > 为什么 C++ 中数组中的零被视为 NULL(使用 CODEBLOCKS)?

问题描述

我在数组中输入了零作为整数,当使用函数打印数组 (show()) 时,它会退出函数,将零视为 NULL。

数组 = {1,2,3,0,4,5}

预期产出 = 1 2 3 0 4 5

输出 = 1 2 3

为什么会这样?CodeBlocks 设置有问题吗?

谢谢

 int show(int arr[])                               //p r i n t   a r r a y
{
    int i;
    for(i = 0; arr[i]!='\0'; ++i)
    {
        cout<<arr[i]<<"\t";
    }
    if(arr[0]=='\0')
        cout<<"Emptry Array";
    return 0;
}

标签: c++nullcodeblocks

解决方案


'\0'char数值为 0 的类型常数。

将其与数值 00的类型常量进行比较。(有趣的事实:它实际上是一个八进制常量,因为它以! 开头)int0

有些NULL人也用零来表示,尤其是在使用指针时。在 C++ 中,它需要严格设置为 0,或类型为prvaluestd::nullptr_t。(与 C 比较,其中(void*)0通常是定义。)

从 C++11 开始,您应该使用nullptr来表示空指针值。


许多人使用 0、\0、 NULL 和nullptr随意的方式,而不考虑它们的含义。以上述为指导。


推荐阅读