gpt4 book ai didi

java - 检查 char 是否为空

转载 作者:太空狗 更新时间:2023-10-29 20:05:11 26 4
gpt4 key购买 nike

我在将代码从 java 转换为 C++ 时遇到了一个小问题

我正在尝试检查是否设置了二维数组,这是我的 java 代码

for(int area_y = y -1 ;area_y > 0 ;area_y--)
{
for(int area_x = 0 ;area_x < x; area_x++)
{
if(area[area_x][area_y] == 0)
{
System.out.print(" "); // this is printed
// if area[area_x][area_y] is not set

}
else
System.out.print(area[area_x][area_y]);


}
System.out.println();
}

这是我的 C++ 代码,可以正常工作

for(int area_y = y -1 ;area_y > 0 ;area_y--)
{
for(int area_x = 0 ;area_x < x; area_x++)
{
if(area[area_x][area_y] == 0) // this line does not work as
// the next line is not executed
{
cout << "1";
}
else
cout << (area[area_x][area_y]) ;
}

cout << endl;
}

问题在于检查该变量是否已设置,它是一个 char area[20][50];

如何在 C++ 中正确检查变量是否为空(未设置)?

最佳答案

在 C++ 中,标量类型的对象不是零初始化的。它们是默认初始化的,这意味着它们在初始化时获得的值是未定义的。

特别是,对于 charint 等,该值不太可能为 0,绝对不应该依赖它来获得任何特定值.如果您希望在开始使用数组单元之前将它们初始化为 0,则必须手动初始化它们。

如果您来自 Java 世界,您可能会认为这是一项不必要的大量工作,但考虑到您正在使用 C 风格的数组,而 C 并不意味着为了程序员的时间而牺牲性能。在某些情况下,初始化为 0 会无用地浪费 CPU 时间,并且您不想为不使用的内容付费。

关于java - 检查 char 是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com