Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查char是否为空 我有一个小问题,把代码从java转换成C++_Java_C++_Char_Is Empty_Isnullorempty - Fatal编程技术网

检查char是否为空 我有一个小问题,把代码从java转换成C++

检查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

我试图检查是否设置了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 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_xC++中的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