Leg*_*ggy 3 c++ java char isnullorempty is-empty
我将代码从java转换为C++有一个小问题
我试图检查是否设置了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();
}
Run Code Online (Sandbox Code Playgroud)
这是我的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;
}
Run Code Online (Sandbox Code Playgroud)
问题是检查是否设置了变量,它是一个 char area[20][50];
如何在c ++中正确检查变量是否为空(未设置)?
在C++中,标量类型的对象不是零初始化的.它们是默认初始化的,这意味着它们在初始化时获得的值是未定义的.
特别是,对于chars int等,该值不太可能为0 ,并且绝对不应该依赖它具有任何特定值.如果希望在开始使用阵列单元格之前将其初始化为0,则必须手动初始化它们.
如果你来自Java世界,你可能会认为这是一项不必要的大量工作,但考虑到你正在使用C风格的数组,并且C并不意味着牺牲程序员时间的性能.有些情况下,初始化为0将无用地浪费CPU时间,并且您不想为不使用的内容付费.
| 归档时间: |
|
| 查看次数: |
2921 次 |
| 最近记录: |