c++ - 为什么 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;
}
解决方案
'\0'
是char
数值为 0 的类型常数。
将其与数值 00
的类型常量进行比较。(有趣的事实:它实际上是一个八进制常量,因为它以! 开头)int
0
有些NULL
人也用零来表示,尤其是在使用指针时。在 C++ 中,它需要严格设置为 0,或类型为prvaluestd::nullptr_t
。(与 C 比较,其中(void*)0
通常是定义。)
从 C++11 开始,您应该使用nullptr
来表示空指针值。
许多人使用 0、\0
、 NULL 和nullptr
随意的方式,而不考虑它们的含义。以上述为指导。
推荐阅读
- regex - Kotlin 正则表达式边界匹配不起作用
- list - How can I compare the value of two predicates prolog
- docker - 如何构建一个可以在busybox中运行我的c++程序的docker构建文件?
- python - How to get instagram number of followers using instaload?
- c++ - 如何在 C++ 的控制台中结束输入多行?
- php - 显示登录用户的评论总数( $user_id = get_current_user_id(); )
- microsoft-graph-api - How to filter SharePoint list items by ID using Microsoft Graph Api
- c++ - Access violation when attempting to access object member variables in an array
- c# - 在按不同属性排序后如何按一个属性排序列表?
- r - ggplot 中带有 geom_col 和位置“dodge”的 geom_text