检查char是否为空 我有一个小问题,把代码从java转换成C++
我试图检查是否设置了2d数组,这是我的java代码检查char是否为空 我有一个小问题,把代码从java转换成C++,java,c++,char,is-empty,isnullorempty,Java,C++,Char,Is Empty,Isnullorempty,我试图检查是否设置了2d数组,这是我的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
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();
}
for(int area_y=y-1;area_y>0;area_y--)
{
对于(int area_x=0;area_x
这是我的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;
}
for(int area_y=y-1;area_y>0;area_y--)
{
对于(int area_x=0;area_x C++中的CUT< P>,标量类型的对象不是零初始化的,它们是默认初始化的,这意味着它们在初始化时得到的值是未定义的。
特别是,char
s、int
等的值不太可能为0,而且绝对不应该依赖它来获得任何特定值。如果希望在开始使用数组单元格之前将其初始化为0,则必须手动对其进行初始化
如果你来自java世界,你可能会认为这是不必要的大量工作,但是考虑到你正在使用C样式数组,C不意味着牺牲程序员的时间性能。在某些情况下,初始化到0会浪费CPU时间,而你不想为你不使用的东西付费。o检查变量是否已“设置”的方法。您只能检查它是否等于特定值
您在java中的代码似乎可以工作,因为在java中,编译器为所有已创建但未初始化的基本数据类型提供了一个默认值。对于char,它是'\u0000',相当于0
在C++中,这些字符的值是不确定的。如果你想要有相同的行为,你需要在你检查之前明确地把所有的字符设置为0。?该声明未初始化字符。您可以始终将其设置为0。请尝试将字符数组声明为全局数组,或将其填充为0
asinitialization@NikBougalis对于empty,我的意思是not seta,您似乎将未设置与值0
混淆了。在苦苦寻找如何检查无论是否设置了ar,我都根据您的信息修改了条件,并计算出Java代码!myChar==0
-当char myChar;
从未收到值时,这将有效地返回true
。